# @callidescope/nx 中文文档

规范地址：https://npmcn.com/package/%40callidescope/nx/

版本：0\.0\.75
npm 元数据更新时间：2026-11-09T03:16:00.690Z
中文译文更新时间：2026-11-09T05:14:34.987Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40callidescope/nx
原文对照：https://npmcn.com/package/%40callidescope/nx/?lang=original
项目主页：https://github.com/organizzolini/codebase/tree/main/projects/ic-suite/callidescope/callidescope-nx#readme
源码仓库：https://github.com/organizzolini/codebase

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：191 kB，24 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：11 个
- peer 依赖：typescript ^6\.0\.3
- 首次发布：2026-10-04T22:27:01.188Z
- 最新版本发布：2026-11-09T03:16:00.328Z
- 近 30 天下载量：8369（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：73（近 12 个月 73 个）

## 中文简介

Nx 插件, 提供工程范围调用存储跟踪和 Nx 依赖图上的深度显示

## 安装

```sh
npm install @callidescope/nx
```

也可以使用：`pnpm add @callidescope/nx`、`yarn add @callidescope/nx`、`bun add @callidescope/nx`

## README

# Nx 调用镜

[![npm](https://img.shields.io/npm/v/@callidescope/nx?logo=npm&label=npm)](https://www.npmjs.com/package/@callidescope/nx)

**遵循 Nx 依赖图的 Nx 插件可以追踪每个项目的调用堆栈 .**

用于呼叫跟踪、配置、深度和广度分析以及报告格式的分类文件载于 [`@callidescope/cli` 读取](https://github.com/Organizzolini/codebase/tree/main/projects/ic-suite/callidescope/callidescope-cli#readme)。 。 。 . `@callidescope/cli` 目的为无 Nx : 它需要 `--directories`,每个人的路径 持有自己的 `tsconfig.json`,所以这个 在任意类型脚本工作区工作,无论Nx是否靠近它。 这个 软件包是工具链中唯一一个知道Nx存在的地方,也是唯一的 一个取决于 `@nx/devkit`。 。 。 .

它增加了两个核心CLI无法知道的东西:

-   **每个项目的目标**,所以工作空间的任务执行者 选择.. `nx affected`, (中文(简体) ), `--projects=tag:…`、 ca临τ.
-   **依赖意识范围**,所以运行一个项目 范围为一切 这个项目取决于而不是仅仅依靠项目.

## 安装

```bash
npm install --save-dev @callidescope/nx
```

登记在册 `nx.json`数字 :

```json
{
  "plugins": [
    {
      "plugin": "@callidescope/nx",
      "options": {
        "configurationPath": "configuration/callidescope.config.ts"
      }
    }
  ]
}
```

| 选项 | 含义 |
| --- | --- |
| `configurationPath` | 要求。 工作空间的 Callidescope 配置所居住的地方 。 没有搜索到任何内容: 拒绝删除此选项的注册 。 拒绝的决定由 `@callidescope/configuration`,每个表面共享 |
| `traceTargetName` | 推断出追踪目标的名称. `callidescope-trace` 省略时 |
| `depthTargetName` | 推断出深度目标的名称. `callidescope-depth` 省略时 |
| `breadthTargetName` | 推断出宽度目标的名称. `callidescope-breadth` 省略时 |
| `gateTargetName` | 推断出的目标. `callidescope-restrict` 省略时 |

所有推断目标默认为 `callidescope-*` 名称以避免通用任务 nx 列表中的标签。 如果工作空间, 请从注册中重新命名其中的任何一个 已经使用了一个.

## 使用量

在每个项目中,有四个目标被推断为 `tsconfig.json`这样 选择是Nx的工作,而不是这个软件包的旗:

```bash
nx run callidescope-nx:callidescope-trace                      # one project, with its dependencies
nx run-many -t callidescope-trace                              # the workspace
nx run-many -t callidescope-trace --projects=tag:type:package  # a category
nx affected -t callidescope-trace                              # only what changed
```

```bash
nx run callidescope-nx:callidescope-depth --addresses="projects/ic-suite/callidescope/callidescope-nx/src/modules/projects/projects.service.ts#ProjectsService.resolveDependencyClosure"
nx run callidescope-nx:callidescope-breadth --addresses="src/foo.service.ts#FooService.bar"

# Several at once, which is what a rename spanning a handful of them needs
nx run callidescope-nx:callidescope-depth --addresses="src/a.service.ts#A.b,src/c.service.ts#C.d"
```

| 目标 | 答复 |
| --- | --- |
| `callidescope-restrict` | 项目中是否有东西突破了它所持有的限制 |
| `callidescope-trace` | 工程的每个呼叫堆, 和哪些突破限制 |
| `callidescope-depth` | 每一个可调取的上下堆栈 调取者到根,调取者到叶 |
| `callidescope-breadth` | 每个被呼叫的直呼者和被呼叫者并肩 |

`depth` 财务报告和审定财务报表 `breadth` 一样 `<file>#<qualified-name>` 地址: `callidescope` 命令确实——每个打印堆栈已经使用的窗体——和 相同的逗号分隔 `--addresses` 旗帜会让他们通过。 通过 插件,它们针对项目及其依赖性而不是 整个工作空间,它既更快, 地址的设定属于.

**每一个地址都必须解决,否则任务会一无所获.** 一份涵盖 只有被理解的地址,在任务Nx记录为 成功,比失败的更糟糕;每个未匹配的地址被命名和 任务失败 。 下 `--format=json` 报告总是一个阵列,不管是什么 地址计数,匹配命令行打印的内容.

与命令行不同, 缺少一个 `--addresses` 实值 **拒绝,而不是 已提示**: 任务执行者没有人要问.

### 大门

`gate` 是一条管道中的一条 是用来读取出口代码的, 唯一一个只印出其发现的 堆叠和可调用的东西 而不是项目中的每一堆. `nx affected -t gate` 因此,通过它所改变的项目将一个分支关入,失败的任务就是 以退后的工程命名, 而该工程从不执行全工作空间的任务 能够.

**依赖的破坏就是依赖门的生意.** 追踪 进入项目 门的工程取决于, 因为堆叠 在一个包的边界上停止 测量错误的东西,但判决覆盖 任务范围仅限于项目。 这是出版界的一行 已绘制,向前再走一步:测量达到依赖性, 出版没有,判断也没有。 没有什么能逃脱判决, 因为 `nx affected` 选择更改的依赖性及其自己的门名 这个. `trace` 所以一个项目的两个目标 对于谁的退步,它永远不会有分歧 完全关闭, 因为只有判决缩小.

**深度总是被门, 宽度,只要有限制.** 非两种模式 选择在 : `maximumDepth` 默认, 所以每个工程都有数字 并被判决 `maximumBreadth` 没有任何一个级别——因此是一个项目 所宣布的无宽度限制的判断 `Infinity` 无法产生 广度发现.

**一个没有打开被判断项目自身文件的门失败 .** 一个项目 报告零文件本身不是一个干净的项目——这是一个项目 什么都没有看,绿色的任务 将会说相反的无所事事 在输出中纠正它。 这个 `callidescope` 命令失败 同样的原因.

**`trace` 印出相同的块并经过它** 规则之一 目标的行动不同, 唯一的地方是他们的判决。 一个项目 配置按定义排除了读取任何内容 没有 `gate` 正是因为这个原因,所以失败了 `trace` 也会离开 它被配置的永久红色目标 总是红色的红色任务 是读者学会忽略的 这个 仍然打印,因为是否读取了项目本身的代码是关于 不管是哪种方式 读者必须能看到它。 其他一切——一叠 超过深度限制 超过宽度限制的调用 一次无读的跑 都失败了.

**被询问的每个判断项目,而不是整个运行**,因为缩小 判决提出了这两个不同的问题。 有依赖关系的项目 非空地运行 任何它自己的来源,所以 `exclude` 那个 超比例——项目本身 `callidescope.config.*` 可能写作——叶片 它没有报告内容,没有发现, 并传递绿色代码 没有读。 显示 : `projects/ic-suite/codometer/codometer-output` 给定 `{"exclude": ["**"]}` 它的附属物102个 没有什么贡献,这是一个绿色的大门 关于整个问题,一个红色的 这一点。 未读的项目被重新命名,因为 `--projects` 可能 数个法官.

**文件而非可调用文件**,这是较弱的问题和权利 一个 工程可以持有宣布完全不可调用的文件——一个 `tsconfig.json` 仅命名自己的配置文件,其测试是 形状,而这个寄存器有五个—— 那些文件被读取,所以一个判决 他们将受某种判决。 要求拨号失败 全部5个 没有任何功能,这是一无所获。 成本,说明 plainly:在配置文件时排除来源的项目 自己活下来的算作读取.

相邻的两起案子都失败了 都说出发生了什么 正在变换: 已读出 **没什么**,这就是一个未读 叶子工程看起来像, 和一个 Nx 选择 **无目录**。 。 。 .

它的缓存密钥名称是工程自己的 `callidescope.config.*` 与 工作空间配置,所以编辑一个工程的限制 重新运行工程的 门,没有其他项目。 受抚养人的来源包括: `^default`, (中文(简体) ), 因为它能衡量它的依赖性,即使它不加以判断.

所有四个目标都有意跳出两个项目: **工作空间根 项目**目标可以追踪所有无法完成的任务 任何项目 **没有 `tsconfig.json`**,其目标将是永久的 空无相. 配置的工程 **不包括** —— 说 `exclude` 或者说 `excludeFrom` 内 工作空间文件 – 额外得到否 `gate`:它自己的代码从未被追踪, 因此,一个门 将没有任何发现 并报告绿色代码 它从来没有 读取。 它保持三个 打印的东西, `trace` 包括,这是什么 上面未读的豁免是为了保留: `projects/ic-suite/callidescope/callidescope-examples` 它的堆栈仍然是读者可以打开的报告.

### 为什么追踪跟随依赖

`nx run callidescope-cli:trace` 跟踪 `callidescope-cli` **财务报告和审定财务报表 一切取决于**,从 Nx 项目图中转接解出.

一个呼叫堆栈向下运行——一个命令呼叫进入它被注入的服务 与,它生活在一个包 它依赖于—— 所以一个痕迹停止在一个 工程本身的边界会测量错误的东西.

**没有此插件, 追踪就不会停止 .** [`@callidescope/cli`](https://npmcn.com/package/%40callidescope/callidescope-cli/README.md) 构建类型脚本 程序用于每个工程的目录被中转导入, 所以 对依赖的调用决定了Nx是否为真实框架 参与。 根据这个包裹, `callidescope --config configuration/callidescope.config.ts --directories projects/ic-suite/callidescope/callidescope-nx` 财务报告和审定财务报表 `nx run callidescope-nx:trace` 在185个文件中报告同样的575个可调用文件 7个项目.

Nx 图表决定的是 运行是哪个项目 **范围为** 相当 而不是仅仅达到。 这个执行者在任何地方都写不出来 报告并打印出来,所以区别在这里没有代价,扩大 选择只更改哪些项目为关闭的种子。 这是命令线 执行该程序的主机: a `--write` 运行那里出版一个 `## 🔭 Callidescope` 列入范围项目 `README.md` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}留下一个伸手的 运行它的范围。 图表中还指定了不关闭导入的依赖关系 可以找到——隐含的依赖,或者只在运行时间存在的边缘.

两套不同. Nx 图给出 `callidescope-nx` 6个 项目; 导入关闭达到7个, 添加 `codometer-configuration`, (中文(简体) ), 这个项目 `tsconfig.json` 自己拉进来 `codometer.config.ts` - 名单里没理由提的.

依附关系,从不依附关系:项目依附关系 _输入_ 并添加 下方没有框架.

过 `--withDependencies=false` 到选定项目的运行范围 一个人 它们下面的闭合线是搭建的 所以有什么变化 工程运行称为自己的运行,而不是堆栈运行多远.

### 执行器选项

```bash
nx run logging:trace --tags=type:package
nx run logging:depth --addresses="a.ts#A.b" --projects=callidescope-cli
```

所有三个执行者都采用相同的范围界定选项.

| 选项 | 含义 |
| --- | --- |
| `addresses` | `depth` 财务报告和审定财务报表 `breadth` 仅,且需要:可调取的抬头,逗号分隔 |
| `projects` | Nx 项目名称可以解决, 替换目标自己的项目 |
| `tags` | Nx 项目标记, 选择每个携带的工程 **任意** 他们 |
| `withDependencies` | 沿着Nx依赖图拓宽. `true` 默认 |
| `format` | `markdown`, (中文(简体) ), `mermaid`,或 `json` |
| `configuration` | 要求,并写在从登记中推断出的每个目标上 `configurationPath`。手写目标必须自己命名,否则被拒绝命名此选项 |

`--projects` 财务报告和审定财务报表 `--tags` 结合而不是交叉,项目已经实现 两条路都有一次被追查. `--tags` 匹配 **任意** 标记, 因为Nx标签家庭在单个项目上是互相排斥的 两者 `type:application` 财务报告和审定财务报表 `type:package`,所以要求他们所有人 选择无.

更喜欢Nx自己的 `--projects=tag:…` 打开 `run-many` 用于普通选择; 这些 对想要在定义中宣布固定范围的目标,有选项 `project.json`。 。 。 .

### 没有什么能无声无息

工作空间没有工程名称, 或没有项目带的标签, 失败 任务和名称。 缩小跑道 将让它通过,同时测量的比要求它少,并报告 跑步的掩护不能让你看到它没有的.

## 作为图书馆

Nx-graph 读取是一个 NestJS 的提供者, 用于一个主机, 它宁愿导入 它不是执行一个任务

```ts
import { resolveProjectsService } from "@callidescope/nx";

const projectsService = await resolveProjectsService();
const graph = await projectsService.readProjectGraph();
const names = projectsService.resolveDependencyClosure({
  graph,
  projectNames: ["callidescope-cli"],
});
const directories = projectsService.toDirectories({ graph, projectNames: names });
```

`readProjectGraph` 是唯一在运行时触及 Nx 的方法; 每 解析规则将图取为参数,因此可以不用 一个工作空间来构建一个来自.

## 软件包

| 软件包 | 作用 |
| --- | --- |
| [`@callidescope/nx`](https://npmcn.com/package/%40callidescope/nx/) | Nx 插件: 每个项目的微量目标, 通过 Nx 图表解决 |
| [`@callidescope/cli`](https://npmcn.com/package/%40callidescope/callidescope-cli/README.md) | 管弦乐演奏:追踪工作空间,计划检查什么,以及报告 |
| [`@callidescope/configuration`](https://npmcn.com/package/%40callidescope/callidescope-configuration/README.md) | 读取 `callidescope.config.ts` 并解决界限 |
| [`@callidescope/graph`](https://npmcn.com/package/%40callidescope/callidescope-graph/README.md) | 构建来自追溯源的调用图并测量深度和宽度 |
| [`@callidescope/output`](https://npmcn.com/package/%40callidescope/callidescope-output/README.md) | 美人鱼和JSON的标记 |

## 测试

```bash
nx run callidescope-nx:vitest
```

## 捐款

```bash
nx run callidescope-nx:lint-code --configuration=check
```

## 许可证

麻省理工学院——见 [自由主义](https://npmcn.com/LICENSE)。 。 。 .

## \* 调和

这个项目源于 [巢-服务-项目](https://npmcn.com/configuration/conformetry-templates/nestjs-service-project) 符合模板.

## \\\\ 代码endix

依赖图导出 [代码](https://github.com/Organizzolini/codebase/tree/main/projects/ic-suite/codependix/codependix-cli),由 `nx run configuration:codependix:write`。 。 。 .

### 邻里

```mermaid
graph LR
  callidescope_cli["callidescope-cli"]
  callidescope_configuration["callidescope-configuration"]
  callidescope_core["callidescope-core"]
  callidescope_graph["callidescope-graph"]
  callidescope_nx["callidescope-nx"]
  callidescope_output["callidescope-output"]
  observability["observability"]
  callidescope_nx --> callidescope_cli
  callidescope_nx --> callidescope_configuration
  callidescope_nx --> callidescope_core
  callidescope_nx --> callidescope_graph
  callidescope_nx --> callidescope_output
  callidescope_nx --> observability
  classDef subject fill:#7c3aed,color:#fff,stroke:#4c1d95,stroke-width:2px
  class callidescope_nx subject
```

### NestJS 模块图

```mermaid
flowchart LR
  AddressLookupModule
  AddressModule
  AddressReportModule
  CallablesModule
  CallidescopeModule
  ClassesModule
  ConfigurationFileModule
  ConfigurationModule
  DocumentationModule
  EdgesModule
  EntriesModule
  FlagResolutionModule
  GraphModule
  InputModule
  LoggerModule([LoggerModule])
  MainModule
  OptionsModule
  OutputJsonModule
  OutputMarkdownModule
  PluginModule
  ProgramModule
  ProjectReportsModule
  ProjectsModule
  ReportFindingsModule
  ReportModule
  RunConfigurationModule
  RunPlanModule
  SignaturesModule
  VerdictModule
  WorkspaceModule
  WriteDestinationsModule
  AddressLookupModule --> CallablesModule
  AddressLookupModule --> CallidescopeModule
  AddressLookupModule --> ConfigurationModule
  AddressModule --> AddressLookupModule
  AddressModule --> AddressReportModule
  AddressModule --> GraphModule
  AddressReportModule --> ReportModule
  CallablesModule --> ProgramModule
  CallablesModule --> WorkspaceModule
  CallidescopeModule --> CallablesModule
  CallidescopeModule --> ClassesModule
  CallidescopeModule --> ConfigurationModule
  CallidescopeModule --> EdgesModule
  CallidescopeModule --> EntriesModule
  CallidescopeModule --> GraphModule
  CallidescopeModule --> OutputJsonModule
  CallidescopeModule --> OutputMarkdownModule
  CallidescopeModule --> ProgramModule
  CallidescopeModule --> ProjectReportsModule
  CallidescopeModule --> ReportFindingsModule
  CallidescopeModule --> ReportModule
  CallidescopeModule --> WorkspaceModule
  CallidescopeModule --> WriteDestinationsModule
  ConfigurationModule --> ConfigurationFileModule
  ConfigurationModule --> InputModule
  ConfigurationModule --> RunPlanModule
  EdgesModule --> CallablesModule
  EdgesModule --> ClassesModule
  EdgesModule --> ProgramModule
  EdgesModule --> WorkspaceModule
  EntriesModule --> CallablesModule
  GraphModule --> DocumentationModule
  GraphModule --> EdgesModule
  GraphModule --> SignaturesModule
  MainModule --> AddressModule
  MainModule --> PluginModule
  OptionsModule --> ConfigurationModule
  PluginModule --> CallidescopeModule
  PluginModule --> ConfigurationModule
  PluginModule --> OptionsModule
  PluginModule --> ProjectsModule
  PluginModule --> ReportModule
  PluginModule --> RunConfigurationModule
  PluginModule --> VerdictModule
  PluginModule --> WorkspaceModule
  ProgramModule --> WorkspaceModule
  ProjectReportsModule --> GraphModule
  ProjectReportsModule --> SignaturesModule
  RunConfigurationModule --> ConfigurationModule
  RunPlanModule --> FlagResolutionModule
  VerdictModule --> ProjectReportsModule
  WriteDestinationsModule --> OutputJsonModule
  WriteDestinationsModule --> OutputMarkdownModule
  WriteDestinationsModule --> ReportModule
```

_四舍五入的模块是全局的:每个模块都可以注入,因此其边缘被忽略._

### 文件导入

```mermaid
graph LR
  file_callidescope_config_ts["callidescope.config.ts"]
  file_codependix_config_ts["codependix.config.ts"]
  file_codometer_config_ts["codometer.config.ts"]
  file_coinagerie_config_ts["coinagerie.config.ts"]
  file_eslint_config_ts["eslint.config.ts"]
  file_src_callidescope_nx_module_ts["src/callidescope-nx.module.ts"]
  file_src_executors_address_types_ts["src/executors/address.types.ts"]
  file_src_executors_breadth_executor_ts["src/executors/breadth/executor.ts"]
  file_src_executors_breadth_executor_unit_test_ts["src/executors/breadth/executor.unit.test.ts"]
  file_src_executors_depth_executor_ts["src/executors/depth/executor.ts"]
  file_src_executors_depth_executor_unit_test_ts["src/executors/depth/executor.unit.test.ts"]
  file_src_executors_gate_batch_executor_ts["src/executors/gate/batch-executor.ts"]
  file_src_executors_gate_batch_executor_unit_test_ts["src/executors/gate/batch-executor.unit.test.ts"]
  file_src_executors_gate_executor_integration_test_ts["src/executors/gate/executor.integration.test.ts"]
  file_src_executors_gate_executor_ts["src/executors/gate/executor.ts"]
  file_src_executors_gate_executor_types_ts["src/executors/gate/executor.types.ts"]
  file_src_executors_gate_executor_unit_test_ts["src/executors/gate/executor.unit.test.ts"]
  file_src_executors_manifest_unit_test_ts["src/executors/manifest.unit.test.ts"]
  file_src_executors_trace_executor_ts["src/executors/trace/executor.ts"]
  file_src_executors_trace_executor_types_ts["src/executors/trace/executor.types.ts"]
  file_src_executors_trace_executor_unit_test_ts["src/executors/trace/executor.unit.test.ts"]
  file_src_index_ts["src/index.ts"]
  file_src_index_unit_test_ts["src/index.unit.test.ts"]
  file_src_modules_address_address_constants_ts["src/modules/address/address.constants.ts"]
  file_src_modules_address_address_module_ts["src/modules/address/address.module.ts"]
  file_src_modules_address_address_service_ts["src/modules/address/address.service.ts"]
  file_src_modules_address_address_service_unit_test_ts["src/modules/address/address.service.unit.test.ts"]
  file_src_modules_address_address_types_ts["src/modules/address/address.types.ts"]
  file_src_modules_address_address_utilities_ts["src/modules/address/address.utilities.ts"]
  file_src_modules_address_address_utilities_unit_test_ts["src/modules/address/address.utilities.unit.test.ts"]
  file_src_modules_options_options_constants_ts["src/modules/options/options.constants.ts"]
  file_src_modules_options_options_module_ts["src/modules/options/options.module.ts"]
  file_src_modules_options_options_service_ts["src/modules/options/options.service.ts"]
  file_src_modules_options_options_service_unit_test_ts["src/modules/options/options.service.unit.test.ts"]
  file_src_modules_options_options_types_ts["src/modules/options/options.types.ts"]
  file_src_modules_plugin_plugin_context_utilities_ts["src/modules/plugin/plugin-context.utilities.ts"]
  file_src_modules_plugin_plugin_context_utilities_unit_test_ts["src/modules/plugin/plugin-context.utilities.unit.test.ts"]
  file_src_modules_plugin_plugin_constants_ts["src/modules/plugin/plugin.constants.ts"]
  file_src_modules_plugin_plugin_module_ts["src/modules/plugin/plugin.module.ts"]
  file_src_modules_plugin_plugin_service_ts["src/modules/plugin/plugin.service.ts"]
  file_src_modules_plugin_plugin_service_unit_test_ts["src/modules/plugin/plugin.service.unit.test.ts"]
  file_src_modules_plugin_plugin_types_ts["src/modules/plugin/plugin.types.ts"]
  file_src_modules_plugin_plugin_utilities_ts["src/modules/plugin/plugin.utilities.ts"]
  file_src_modules_projects_projects_constants_ts["src/modules/projects/projects.constants.ts"]
  file_src_modules_projects_projects_module_ts["src/modules/projects/projects.module.ts"]
  file_src_modules_projects_projects_service_ts["src/modules/projects/projects.service.ts"]
  file_src_modules_projects_projects_service_unit_test_ts["src/modules/projects/projects.service.unit.test.ts"]
  file_src_modules_projects_projects_types_ts["src/modules/projects/projects.types.ts"]
  file_src_modules_run_configuration_run_configuration_constants_ts["src/modules/run-configuration/run-configuration.constants.ts"]
  file_src_modules_run_configuration_run_configuration_module_ts["src/modules/run-configuration/run-configuration.module.ts"]
  file_src_modules_run_configuration_run_configuration_service_ts["src/modules/run-configuration/run-configuration.service.ts"]
  file_src_modules_run_configuration_run_configuration_service_unit_test_ts["src/modules/run-configuration/run-configuration.service.unit.test.ts"]
  file_src_modules_run_configuration_run_configuration_types_ts["src/modules/run-configuration/run-configuration.types.ts"]
  file_src_modules_verdict_verdict_constants_ts["src/modules/verdict/verdict.constants.ts"]
  file_src_modules_verdict_verdict_module_ts["src/modules/verdict/verdict.module.ts"]
  file_src_modules_verdict_verdict_service_ts["src/modules/verdict/verdict.service.ts"]
  file_src_modules_verdict_verdict_service_unit_test_ts["src/modules/verdict/verdict.service.unit.test.ts"]
  file_src_modules_verdict_verdict_types_ts["src/modules/verdict/verdict.types.ts"]
  file_testing_mocks_ts["testing/mocks.ts"]
  file_testing_setup_ts["testing/setup.ts"]
  file_vite_config_ts["vite.config.ts"]
  file_vitest_config_ts["vitest.config.ts"]
  file_src_callidescope_nx_module_ts --> file_src_modules_address_address_module_ts
  file_src_callidescope_nx_module_ts --> file_src_modules_plugin_plugin_module_ts
  file_src_executors_breadth_executor_ts --> file_src_executors_address_types_ts
  file_src_executors_breadth_executor_ts --> file_src_modules_address_address_utilities_ts
  file_src_executors_breadth_executor_unit_test_ts --> file_src_executors_breadth_executor_ts
  file_src_executors_breadth_executor_unit_test_ts --> file_src_modules_address_address_utilities_ts
  file_src_executors_depth_executor_ts --> file_src_executors_address_types_ts
  file_src_executors_depth_executor_ts --> file_src_modules_address_address_utilities_ts
  file_src_executors_depth_executor_unit_test_ts --> file_src_executors_depth_executor_ts
  file_src_executors_depth_executor_unit_test_ts --> file_src_modules_address_address_utilities_ts
  file_src_executors_gate_batch_executor_ts --> file_src_executors_gate_executor_types_ts
  file_src_executors_gate_batch_executor_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_executors_gate_batch_executor_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_executors_gate_batch_executor_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_executors_gate_batch_executor_ts --> file_src_modules_plugin_plugin_utilities_ts
  file_src_executors_gate_batch_executor_unit_test_ts --> file_src_executors_gate_batch_executor_ts
  file_src_executors_gate_batch_executor_unit_test_ts --> file_src_executors_gate_executor_types_ts
  file_src_executors_gate_batch_executor_unit_test_ts --> file_src_modules_options_options_service_ts
  file_src_executors_gate_batch_executor_unit_test_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_executors_gate_batch_executor_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
  file_src_executors_gate_batch_executor_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_executors_gate_executor_integration_test_ts --> file_src_executors_gate_executor_ts
  file_src_executors_gate_executor_integration_test_ts --> file_src_executors_gate_executor_types_ts
  file_src_executors_gate_executor_integration_test_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_executors_gate_executor_integration_test_ts --> file_src_modules_projects_projects_service_ts
  file_src_executors_gate_executor_ts --> file_src_executors_gate_executor_types_ts
  file_src_executors_gate_executor_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_executors_gate_executor_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_executors_gate_executor_ts --> file_src_modules_plugin_plugin_utilities_ts
  file_src_executors_gate_executor_unit_test_ts --> file_src_executors_gate_executor_ts
  file_src_executors_gate_executor_unit_test_ts --> file_src_modules_options_options_service_ts
  file_src_executors_gate_executor_unit_test_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_executors_gate_executor_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
  file_src_executors_gate_executor_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_executors_trace_executor_ts --> file_src_executors_trace_executor_types_ts
  file_src_executors_trace_executor_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_executors_trace_executor_ts --> file_src_modules_plugin_plugin_utilities_ts
  file_src_executors_trace_executor_unit_test_ts --> file_src_executors_trace_executor_ts
  file_src_executors_trace_executor_unit_test_ts --> file_src_modules_options_options_service_ts
  file_src_executors_trace_executor_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
  file_src_executors_trace_executor_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_index_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_index_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_index_unit_test_ts --> file_src_index_ts
  file_src_index_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
  file_src_index_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_modules_address_address_module_ts --> file_src_modules_address_address_service_ts
  file_src_modules_address_address_service_ts --> file_src_modules_address_address_types_ts
  file_src_modules_address_address_service_unit_test_ts --> file_src_modules_address_address_service_ts
  file_src_modules_address_address_utilities_ts --> file_src_executors_address_types_ts
  file_src_modules_address_address_utilities_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_modules_address_address_utilities_ts --> file_src_modules_plugin_plugin_utilities_ts
  file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_address_address_service_ts
  file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_address_address_utilities_ts
  file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_options_options_service_ts
  file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
  file_src_modules_address_address_utilities_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_modules_options_options_module_ts --> file_src_modules_options_options_service_ts
  file_src_modules_options_options_service_ts --> file_src_modules_options_options_constants_ts
  file_src_modules_options_options_service_ts --> file_src_modules_options_options_types_ts
  file_src_modules_options_options_service_unit_test_ts --> file_src_modules_options_options_constants_ts
  file_src_modules_options_options_service_unit_test_ts --> file_src_modules_options_options_service_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_callidescope_nx_module_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_address_address_service_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_options_options_service_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_plugin_plugin_service_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_modules_plugin_plugin_context_utilities_ts --> file_src_modules_projects_projects_service_ts
  file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_address_address_service_ts
  file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_options_options_service_ts
  file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
  file_src_modules_plugin_plugin_context_utilities_unit_test_ts --> file_src_modules_projects_projects_service_ts
  file_src_modules_plugin_plugin_module_ts --> file_src_modules_options_options_module_ts
  file_src_modules_plugin_plugin_module_ts --> file_src_modules_plugin_plugin_service_ts
  file_src_modules_plugin_plugin_module_ts --> file_src_modules_projects_projects_module_ts
  file_src_modules_plugin_plugin_module_ts --> file_src_modules_run_configuration_run_configuration_module_ts
  file_src_modules_plugin_plugin_module_ts --> file_src_modules_verdict_verdict_module_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_options_options_constants_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_options_options_service_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_options_options_types_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_projects_projects_service_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_run_configuration_run_configuration_service_ts
  file_src_modules_plugin_plugin_service_ts --> file_src_modules_verdict_verdict_service_ts
  file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_options_options_service_ts
  file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_plugin_plugin_service_ts
  file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_projects_projects_service_ts
  file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_run_configuration_run_configuration_service_ts
  file_src_modules_plugin_plugin_service_unit_test_ts --> file_src_modules_verdict_verdict_service_ts
  file_src_modules_plugin_plugin_types_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_modules_plugin_plugin_utilities_ts --> file_src_modules_plugin_plugin_context_utilities_ts
  file_src_modules_plugin_plugin_utilities_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_modules_projects_projects_module_ts --> file_src_modules_projects_projects_service_ts
  file_src_modules_projects_projects_service_ts --> file_src_modules_projects_projects_types_ts
  file_src_modules_projects_projects_service_unit_test_ts --> file_src_modules_projects_projects_service_ts
  file_src_modules_run_configuration_run_configuration_module_ts --> file_src_modules_run_configuration_run_configuration_service_ts
  file_src_modules_run_configuration_run_configuration_service_ts --> file_src_modules_run_configuration_run_configuration_types_ts
  file_src_modules_run_configuration_run_configuration_service_unit_test_ts --> file_src_modules_run_configuration_run_configuration_service_ts
  file_src_modules_verdict_verdict_module_ts --> file_src_modules_verdict_verdict_service_ts
  file_src_modules_verdict_verdict_service_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_modules_verdict_verdict_service_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_modules_verdict_verdict_service_unit_test_ts --> file_src_modules_plugin_plugin_constants_ts
  file_src_modules_verdict_verdict_service_unit_test_ts --> file_src_modules_plugin_plugin_types_ts
  file_src_modules_verdict_verdict_service_unit_test_ts --> file_src_modules_verdict_verdict_service_ts
```

## 缩写表

### 项目

![Lines of Code](https://img.shields.io/badge/Lines_of_Code-6970-22c55e?style=flat-square) ![Repository Size](https://img.shields.io/badge/Repository_Size-272.96_kB-6b7280?style=flat-square) ![Folders](https://img.shields.io/badge/Folders-14-4a4a4a?style=flat-square) ![Source Files](https://img.shields.io/badge/Source_Files-62-3178c6?style=flat-square)

### 计量目标

![Compiled JavaScript Size](https://img.shields.io/badge/Compiled_JavaScript_Size-10.50_kB_gzip-6b7280?style=flat-square)

### 类型脚本

![TypeScript Files](https://img.shields.io/badge/TypeScript_Files-62-3178c6?style=flat-square) ![Interfaces](https://img.shields.io/badge/Interfaces-22-0ea5e9?style=flat-square) ![Generic Declarations](https://img.shields.io/badge/Generic_Declarations-0-0369a1?style=flat-square) ![Enums](https://img.shields.io/badge/Enums-0-f97316?style=flat-square) ![Decorators](https://img.shields.io/badge/Decorators-13-db2777?style=flat-square) ![Doc Comments](https://img.shields.io/badge/Doc_Comments-193-6366f1?style=flat-square) ![Static Methods](https://img.shields.io/badge/Static_Methods-0-166534?style=flat-square)

### Java 脚本

![JavaScript Files](https://img.shields.io/badge/JavaScript_Files-0-f7df1e?style=flat-square) ![Test Files](https://img.shields.io/badge/Test_Files-16-10b981?style=flat-square) ![External Packages](https://img.shields.io/badge/External_Packages-17-8b5cf6?style=flat-square) ![Classes](https://img.shields.io/badge/Classes-13-7c3aed?style=flat-square) ![Functions](https://img.shields.io/badge/Functions-345-16a34a?style=flat-square) ![Methods](https://img.shields.io/badge/Methods-56-15803d?style=flat-square) ![Sync Functions](https://img.shields.io/badge/Sync_Functions-251-4ade80?style=flat-square) ![Async Functions](https://img.shields.io/badge/Async_Functions-150-059669?style=flat-square) ![Constants](https://img.shields.io/badge/Constants-222-dc2626?style=flat-square) ![Imports](https://img.shields.io/badge/Imports-264-0284c7?style=flat-square) ![Exported Symbols](https://img.shields.io/badge/Exported_Symbols-68-ea580c?style=flat-square) ![Comments](https://img.shields.io/badge/Comments-318-64748b?style=flat-square) ![Comment Lines](https://img.shields.io/badge/Comment_Lines-859-475569?style=flat-square) ![TODO Comments](https://img.shields.io/badge/TODO_Comments-0-ca8a04?style=flat-square)

### 蟒

![Python Files](https://img.shields.io/badge/Python_Files-0-3776ab?style=flat-square) ![Python Lines](https://img.shields.io/badge/Python_Lines-0-4b8bbe?style=flat-square) ![Python Classes](https://img.shields.io/badge/Python_Classes-0-7c3aed?style=flat-square) ![Python Functions](https://img.shields.io/badge/Python_Functions-0-16a34a?style=flat-square) ![Python Protocols](https://img.shields.io/badge/Python_Protocols-0-0ea5e9?style=flat-square) ![Python Constants](https://img.shields.io/badge/Python_Constants-0-dc2626?style=flat-square) ![Python Imports](https://img.shields.io/badge/Python_Imports-0-0284c7?style=flat-square) ![Python Decorators](https://img.shields.io/badge/Python_Decorators-0-db2777?style=flat-square) ![Docstrings](https://img.shields.io/badge/Docstrings-0-6366f1?style=flat-square) ![Docstring Lines](https://img.shields.io/badge/Docstring_Lines-0-818cf8?style=flat-square) ![Python Comments](https://img.shields.io/badge/Python_Comments-0-64748b?style=flat-square) ![Python Comment Lines](https://img.shields.io/badge/Python_Comment_Lines-0-475569?style=flat-square)

### 贾森

![JSON Files](https://img.shields.io/badge/JSON_Files-9-a16207?style=flat-square) ![JSON Lines](https://img.shields.io/badge/JSON_Lines-346-ca8a04?style=flat-square) ![JSON Objects](https://img.shields.io/badge/JSON_Objects-85-7c3aed?style=flat-square) ![JSON Arrays](https://img.shields.io/badge/JSON_Arrays-19-8b5cf6?style=flat-square) ![JSON Properties](https://img.shields.io/badge/JSON_Properties-248-0284c7?style=flat-square) ![JSON Strings](https://img.shields.io/badge/JSON_Strings-202-16a34a?style=flat-square) ![JSON Numbers](https://img.shields.io/badge/JSON_Numbers-1-059669?style=flat-square) ![JSON Booleans](https://img.shields.io/badge/JSON_Booleans-11-0ea5e9?style=flat-square) ![JSON Nulls](https://img.shields.io/badge/JSON_Nulls-0-64748b?style=flat-square) ![JSON Items](https://img.shields.io/badge/JSON_Items-61-475569?style=flat-square) ![JSON Nodes](https://img.shields.io/badge/JSON_Nodes-318-dc2626?style=flat-square) ![JSON Max Depth](https://img.shields.io/badge/JSON_Max_Depth-5-ea580c?style=flat-square)

### 也门

![YAML Files](https://img.shields.io/badge/YAML_Files-0-cb171e?style=flat-square) ![YAML Lines](https://img.shields.io/badge/YAML_Lines-0-e34c26?style=flat-square) ![YAML Documents](https://img.shields.io/badge/YAML_Documents-0-f97316?style=flat-square) ![YAML Mappings](https://img.shields.io/badge/YAML_Mappings-0-7c3aed?style=flat-square) ![YAML Sequences](https://img.shields.io/badge/YAML_Sequences-0-8b5cf6?style=flat-square) ![YAML Keys](https://img.shields.io/badge/YAML_Keys-0-0284c7?style=flat-square) ![YAML Scalars](https://img.shields.io/badge/YAML_Scalars-0-16a34a?style=flat-square) ![YAML Anchors](https://img.shields.io/badge/YAML_Anchors-0-059669?style=flat-square) ![YAML Aliases](https://img.shields.io/badge/YAML_Aliases-0-10b981?style=flat-square) ![YAML Comments](https://img.shields.io/badge/YAML_Comments-0-64748b?style=flat-square) ![YAML Max Depth](https://img.shields.io/badge/YAML_Max_Depth-0-ea580c?style=flat-square)

### 移动

![TOML Files](https://img.shields.io/badge/TOML_Files-0-9c4221?style=flat-square) ![TOML Lines](https://img.shields.io/badge/TOML_Lines-0-b45309?style=flat-square) ![TOML Tables](https://img.shields.io/badge/TOML_Tables-0-7c3aed?style=flat-square) ![TOML Array Tables](https://img.shields.io/badge/TOML_Array_Tables-0-8b5cf6?style=flat-square) ![TOML Keys](https://img.shields.io/badge/TOML_Keys-0-0284c7?style=flat-square) ![TOML Arrays](https://img.shields.io/badge/TOML_Arrays-0-16a34a?style=flat-square) ![TOML Comments](https://img.shields.io/badge/TOML_Comments-0-64748b?style=flat-square)

### 贝壳

![Shell Files](https://img.shields.io/badge/Shell_Files-0-89e051?style=flat-square) ![Shell Lines](https://img.shields.io/badge/Shell_Lines-0-4eaa25?style=flat-square) ![Shell Functions](https://img.shields.io/badge/Shell_Functions-0-16a34a?style=flat-square) ![Shell Variables](https://img.shields.io/badge/Shell_Variables-0-0284c7?style=flat-square) ![Shell Exports](https://img.shields.io/badge/Shell_Exports-0-ea580c?style=flat-square) ![Shell Conditionals](https://img.shields.io/badge/Shell_Conditionals-0-7c3aed?style=flat-square) ![Shell Loops](https://img.shields.io/badge/Shell_Loops-0-8b5cf6?style=flat-square) ![Shell Pipelines](https://img.shields.io/badge/Shell_Pipelines-0-059669?style=flat-square) ![Shebangs](https://img.shields.io/badge/Shebangs-0-6b7280?style=flat-square) ![Shell Comments](https://img.shields.io/badge/Shell_Comments-0-64748b?style=flat-square) ![Shell Comment Lines](https://img.shields.io/badge/Shell_Comment_Lines-0-475569?style=flat-square)

### SQL 组合键

![SQL Files](https://img.shields.io/badge/SQL_Files-0-e38c00?style=flat-square) ![SQL Lines](https://img.shields.io/badge/SQL_Lines-0-f29111?style=flat-square) ![SQL Statements](https://img.shields.io/badge/SQL_Statements-0-7c3aed?style=flat-square) ![SQL Selects](https://img.shields.io/badge/SQL_Selects-0-16a34a?style=flat-square) ![SQL Inserts](https://img.shields.io/badge/SQL_Inserts-0-22c55e?style=flat-square) ![SQL Updates](https://img.shields.io/badge/SQL_Updates-0-0ea5e9?style=flat-square) ![SQL Deletes](https://img.shields.io/badge/SQL_Deletes-0-dc2626?style=flat-square) ![SQL Creates](https://img.shields.io/badge/SQL_Creates-0-0284c7?style=flat-square) ![SQL Joins](https://img.shields.io/badge/SQL_Joins-0-8b5cf6?style=flat-square) ![SQL CTEs](https://img.shields.io/badge/SQL_CTEs-0-059669?style=flat-square) ![SQL Comments](https://img.shields.io/badge/SQL_Comments-0-64748b?style=flat-square)

### 高级理事会

![HCL Files](https://img.shields.io/badge/HCL_Files-0-844fba?style=flat-square) ![HCL Lines](https://img.shields.io/badge/HCL_Lines-0-a78bfa?style=flat-square) ![HCL Blocks](https://img.shields.io/badge/HCL_Blocks-0-7c3aed?style=flat-square) ![HCL Resources](https://img.shields.io/badge/HCL_Resources-0-0284c7?style=flat-square) ![HCL Variables](https://img.shields.io/badge/HCL_Variables-0-16a34a?style=flat-square) ![HCL Outputs](https://img.shields.io/badge/HCL_Outputs-0-059669?style=flat-square) ![HCL Attributes](https://img.shields.io/badge/HCL_Attributes-0-0ea5e9?style=flat-square) ![HCL Interpolations](https://img.shields.io/badge/HCL_Interpolations-0-db2777?style=flat-square) ![HCL Comments](https://img.shields.io/badge/HCL_Comments-0-64748b?style=flat-square)

### 支助科

![CSS Files](https://img.shields.io/badge/CSS_Files-0-264de4?style=flat-square) ![CSS Lines](https://img.shields.io/badge/CSS_Lines-0-2965f1?style=flat-square) ![CSS Rules](https://img.shields.io/badge/CSS_Rules-0-7c3aed?style=flat-square) ![CSS Selectors](https://img.shields.io/badge/CSS_Selectors-0-8b5cf6?style=flat-square) ![CSS Declarations](https://img.shields.io/badge/CSS_Declarations-0-0284c7?style=flat-square) ![CSS At Rules](https://img.shields.io/badge/CSS_At_Rules-0-f97316?style=flat-square) ![CSS Media Queries](https://img.shields.io/badge/CSS_Media_Queries-0-ea580c?style=flat-square) ![CSS Custom Properties](https://img.shields.io/badge/CSS_Custom_Properties-0-16a34a?style=flat-square) ![CSS Comments](https://img.shields.io/badge/CSS_Comments-0-64748b?style=flat-square)

### 公约

![Module Files](https://img.shields.io/badge/Module_Files-7-7c3aed?style=flat-square) ![Service Files](https://img.shields.io/badge/Service_Files-6-0284c7?style=flat-square) ![Command Files](https://img.shields.io/badge/Command_Files-0-16a34a?style=flat-square) ![Constants Files](https://img.shields.io/badge/Constants_Files-6-ea580c?style=flat-square) ![Types Files](https://img.shields.io/badge/Types_Files-9-db2777?style=flat-square) ![Utilities Files](https://img.shields.io/badge/Utilities_Files-3-0ea5e9?style=flat-square) ![TypeORM Entities](https://img.shields.io/badge/TypeORM_Entities-0-059669?style=flat-square) ![Unit Tests](https://img.shields.io/badge/Unit_Tests-15-ca8a04?style=flat-square) ![Integration Tests](https://img.shields.io/badge/Integration_Tests-1-7c3aed?style=flat-square) ![End To End Tests](https://img.shields.io/badge/End_To_End_Tests-0-0284c7?style=flat-square) ![CSS Comment Budget](https://img.shields.io/badge/CSS_Comment_Budget-0-16a34a?style=flat-square) ![HCL Comment Budget](https://img.shields.io/badge/HCL_Comment_Budget-0-ea580c?style=flat-square) ![Python Comment Budget](https://img.shields.io/badge/Python_Comment_Budget-0-db2777?style=flat-square) ![SQL Comment Budget](https://img.shields.io/badge/SQL_Comment_Budget-0-0ea5e9?style=flat-square) ![TOML Comment Budget](https://img.shields.io/badge/TOML_Comment_Budget-0-059669?style=flat-square) ![TypeScript Comment Budget](https://img.shields.io/badge/TypeScript_Comment_Budget-0-ca8a04?style=flat-square) ![YAML Comment Budget](https://img.shields.io/badge/YAML_Comment_Budget-0-7c3aed?style=flat-square) ![Shell Comment Budget](https://img.shields.io/badge/Shell_Comment_Budget-0-0284c7?style=flat-square)

### 朱比特语Name

![Notebooks](https://img.shields.io/badge/Notebooks-0-f37626?style=flat-square) ![Notebook Cells](https://img.shields.io/badge/Notebook_Cells-0-e8a33d?style=flat-square) ![Code Cells](https://img.shields.io/badge/Code_Cells-0-3776ab?style=flat-square) ![Markdown Cells](https://img.shields.io/badge/Markdown_Cells-0-083fa1?style=flat-square) ![Raw Cells](https://img.shields.io/badge/Raw_Cells-0-9ca3af?style=flat-square) ![Executed Cells](https://img.shields.io/badge/Executed_Cells-0-16a34a?style=flat-square) ![Cell Outputs](https://img.shields.io/badge/Cell_Outputs-0-059669?style=flat-square) ![Notebook Code Lines](https://img.shields.io/badge/Notebook_Code_Lines-0-4b8bbe?style=flat-square) ![Notebook Classes](https://img.shields.io/badge/Notebook_Classes-0-7c3aed?style=flat-square) ![Notebook Functions](https://img.shields.io/badge/Notebook_Functions-0-22c55e?style=flat-square) ![Notebook Imports](https://img.shields.io/badge/Notebook_Imports-0-0284c7?style=flat-square) ![Notebook Decorators](https://img.shields.io/badge/Notebook_Decorators-0-db2777?style=flat-square) ![Notebook Prose Lines](https://img.shields.io/badge/Notebook_Prose_Lines-0-1f6feb?style=flat-square) ![Notebook Headings](https://img.shields.io/badge/Notebook_Headings-0-a78bfa?style=flat-square) ![Notebook Links](https://img.shields.io/badge/Notebook_Links-0-10b981?style=flat-square) ![Notebook Images](https://img.shields.io/badge/Notebook_Images-0-34d399?style=flat-square) ![Notebook Code Blocks](https://img.shields.io/badge/Notebook_Code_Blocks-0-dc2626?style=flat-square) ![Notebook Properties](https://img.shields.io/badge/Notebook_Properties-0-ca8a04?style=flat-square) ![Notebook Nodes](https://img.shields.io/badge/Notebook_Nodes-0-a16207?style=flat-square) ![Notebook Max Depth](https://img.shields.io/badge/Notebook_Max_Depth-0-ea580c?style=flat-square)

### 标记

![Markdown Files](https://img.shields.io/badge/Markdown_Files-2-083fa1?style=flat-square) ![Markdown Lines](https://img.shields.io/badge/Markdown_Lines-1001-1f6feb?style=flat-square) ![H1](https://img.shields.io/badge/H1-1-7c3aed?style=flat-square) ![H2](https://img.shields.io/badge/H2-78-8b5cf6?style=flat-square) ![H3](https://img.shields.io/badge/H3-94-a78bfa?style=flat-square) ![H4](https://img.shields.io/badge/H4-0-c4b5fd?style=flat-square) ![H5](https://img.shields.io/badge/H5-0-ddd6fe?style=flat-square) ![H6](https://img.shields.io/badge/H6-0-ede9fe?style=flat-square) ![Paragraphs](https://img.shields.io/badge/Paragraphs-406-64748b?style=flat-square) ![Lists](https://img.shields.io/badge/Lists-88-16a34a?style=flat-square) ![List Items](https://img.shields.io/badge/List_Items-383-22c55e?style=flat-square) ![Task List Items](https://img.shields.io/badge/Task_List_Items-0-4ade80?style=flat-square) ![Tables](https://img.shields.io/badge/Tables-2-0284c7?style=flat-square) ![Table Rows](https://img.shields.io/badge/Table_Rows-10-0ea5e9?style=flat-square) ![Links](https://img.shields.io/badge/Links-24-059669?style=flat-square) ![Images](https://img.shields.io/badge/Images-0-10b981?style=flat-square) ![Code Blocks](https://img.shields.io/badge/Code_Blocks-11-dc2626?style=flat-square) ![Inline Code](https://img.shields.io/badge/Inline_Code-100-ef4444?style=flat-square) ![Block Quotes](https://img.shields.io/badge/Block_Quotes-0-ca8a04?style=flat-square) ![Thematic Breaks](https://img.shields.io/badge/Thematic_Breaks-0-a16207?style=flat-square)

## 调用镜

追踪到的呼叫堆栈 `projects/ic-suite/callidescope/callidescope-nx`首先最深处 每个框架显示它需要什么,它返回什么,以及它的文件内容.

| 措施 | 数值 |
| --- | --- |
| 可调用 | 83个 |
| 文件 | 第44条 |
| 追踪的电话 | 123国道 |
| 调用堆栈 | 第7条 |
| 最深的堆栈 | 页:1 |
| 通过重复堆叠 | 0 个 |
| 无法接听的电话 | 1个 |

### 限制

如项目本身所宣布的那样,对该项目作出何种判断 `callidescope.config.ts`。 。 。 .

| 限制 | 数值 |
| --- | --- |
| `maximumDepth` | 页:1 |
| `maximumBreadth` | 第7条 |

### 调用堆栈( 深度)

**1\. 联合国. `breadthExecutor`** - 深度 17 个孤儿

```text
🚀 breadthExecutor(…): Promise<{ success: boolean; }> [projects/ic-suite/callidescope/callidescope-nx/src/executors/breadth/executor.ts:15]
   ↳ Prints each named callable's direct callers and callees side by side — the two questions a rename or a refactor needs…
  └─> runAddressExecutor(…): Promise<{ success: boolean; }> [projects/ic-suite/callidescope/callidescope-nx/src/modules/address/address.utilities.ts:19]
     ↳ Runs the address lookups on behalf of the `depth` or `breadth` executor.
    └─> AddressService.runDepth(args: LookupArguments): Promise<LookupResult> [projects/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:152]
       ↳ Prints every call stack above and below each callable.
      └─> AddressService.locate(…): Promise<string | { identified: { address: string; id: string; }[]; workspace: LocatedWorkspace; }> [projects/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:74]
         ↳ Traces the selection, then matches every address against it.
        └─> AddressLookupService.locate(options: AddressCommandOptions): Promise<LocatedWorkspace> [projects/ic-suite/callidescope/callidescope-cli/src/modules/address-lookup/address-lookup.service.ts:87]
           ↳ Loads the configuration and traces the workspace, matching nothing yet.
          └─> CallidescopeService.locate(args: TraceArguments): Promise<LocateOutcome> [projects/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:394]
             ↳ Collects every callable and assembles the graph over them, without running the analysis a full trace does.
            └─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [projects/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
               ↳ Builds the call graph and everything derived from it.
              └─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
                 ↳ Builds every edge in the graph, and records the calls it could not.
                └─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
                   ↳ Turns one call site into the edges and non-resolutions it produced.
                  └─> EdgesService.resolveSite(…): ResolvedCallSite | undefined [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:226]
                     ↳ Resolves one call site, choosing the right strategy for its shape.
                    └─> SymbolResolutionService.resolve(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:267]
                       ↳ Resolves a call expression to every declaration it can reach.
                      └─> SymbolResolutionService.resolveSymbol(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:165]
                         ↳ Resolves an already-identified callee symbol to its declarations.
                        └─> SymbolResolutionService.resolveThroughHierarchy(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:217]
                           ↳ Expands an interface or abstract member to its implementations.
                          └─> ClassesService.resolveImplementations(…): ImplementationLookup [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:204]
                             ↳ Finds the concrete declarations one interface member resolves to.
                            └─> ClassesService.flatMap(…)(this: undefined, candidate: ts.ClassDeclaration): ts.Declaration[] [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:232]
                              └─> ClassesService.readMemberDeclarations(…): Declaration[] [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:148]
                                 ↳ Reads one member's concrete declarations off a candidate class.
                                └─> ClassesService.filter(…)(member: ts.PropertyDeclaration | ts.MethodDeclaration): boolean [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:162]
```

**2\. 联合国. `depthExecutor`** - 深度 17 个孤儿

```text
🚀 depthExecutor(…): Promise<{ success: boolean; }> [projects/ic-suite/callidescope/callidescope-nx/src/executors/depth/executor.ts:15]
   ↳ Prints every call stack above and below each named callable — every caller chain up to a root, every callee chain down…
  └─> runAddressExecutor(…): Promise<{ success: boolean; }> [projects/ic-suite/callidescope/callidescope-nx/src/modules/address/address.utilities.ts:19]
     ↳ Runs the address lookups on behalf of the `depth` or `breadth` executor.
    └─> AddressService.runDepth(args: LookupArguments): Promise<LookupResult> [projects/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:152]
       ↳ Prints every call stack above and below each callable.
      └─> AddressService.locate(…): Promise<string | { identified: { address: string; id: string; }[]; workspace: LocatedWorkspace; }> [projects/ic-suite/callidescope/callidescope-nx/src/modules/address/address.service.ts:74]
         ↳ Traces the selection, then matches every address against it.
        └─> AddressLookupService.locate(options: AddressCommandOptions): Promise<LocatedWorkspace> [projects/ic-suite/callidescope/callidescope-cli/src/modules/address-lookup/address-lookup.service.ts:87]
           ↳ Loads the configuration and traces the workspace, matching nothing yet.
          └─> CallidescopeService.locate(args: TraceArguments): Promise<LocateOutcome> [projects/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:394]
             ↳ Collects every callable and assembles the graph over them, without running the analysis a full trace does.
            └─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [projects/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
               ↳ Builds the call graph and everything derived from it.
              └─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
                 ↳ Builds every edge in the graph, and records the calls it could not.
                └─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
                   ↳ Turns one call site into the edges and non-resolutions it produced.
                  └─> EdgesService.resolveSite(…): ResolvedCallSite | undefined [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:226]
                     ↳ Resolves one call site, choosing the right strategy for its shape.
                    └─> SymbolResolutionService.resolve(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:267]
                       ↳ Resolves a call expression to every declaration it can reach.
                      └─> SymbolResolutionService.resolveSymbol(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:165]
                         ↳ Resolves an already-identified callee symbol to its declarations.
                        └─> SymbolResolutionService.resolveThroughHierarchy(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:217]
                           ↳ Expands an interface or abstract member to its implementations.
                          └─> ClassesService.resolveImplementations(…): ImplementationLookup [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:204]
                             ↳ Finds the concrete declarations one interface member resolves to.
                            └─> ClassesService.flatMap(…)(this: undefined, candidate: ts.ClassDeclaration): ts.Declaration[] [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:232]
                              └─> ClassesService.readMemberDeclarations(…): Declaration[] [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:148]
                                 ↳ Reads one member's concrete declarations off a candidate class.
                                └─> ClassesService.filter(…)(member: ts.PropertyDeclaration | ts.MethodDeclaration): boolean [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:162]
```

**3个. `gateBatchExecutor`** 15个孤儿

```text
🚀 gateBatchExecutor(…): Promise<Record<string, GateBatchTaskResult>> [projects/ic-suite/callidescope/callidescope-nx/src/executors/gate/batch-executor.ts:33]
   ↳ Gates every task Nx batched for this executor from one trace.
  └─> PluginService.runGateBatch(args: RunGateBatchArguments): Promise<Record<string, RunTraceResult>> [projects/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:394]
     ↳ Gates every task of a batch from one trace of their combined scope.
    └─> CallidescopeService.trace(args: TraceArguments): Promise<TraceOutcome> [projects/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:408]
       ↳ Traces a workspace and returns everything the run found.
      └─> CallidescopeService.analyze(…): AnalyzeOutcome [projects/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:295]
         ↳ Derives every finding from the collected callables.
        └─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [projects/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
           ↳ Builds the call graph and everything derived from it.
          └─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
             ↳ Builds every edge in the graph, and records the calls it could not.
            └─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
               ↳ Turns one call site into the edges and non-resolutions it produced.
              └─> EdgesService.resolveSite(…): ResolvedCallSite | undefined [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:226]
                 ↳ Resolves one call site, choosing the right strategy for its shape.
                └─> SymbolResolutionService.resolve(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:267]
                   ↳ Resolves a call expression to every declaration it can reach.
                  └─> SymbolResolutionService.resolveSymbol(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:165]
                     ↳ Resolves an already-identified callee symbol to its declarations.
                    └─> SymbolResolutionService.resolveThroughHierarchy(…): ResolvedCallSite [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/symbol-resolution.service.ts:217]
                       ↳ Expands an interface or abstract member to its implementations.
                      └─> ClassesService.resolveImplementations(…): ImplementationLookup [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:204]
                         ↳ Finds the concrete declarations one interface member resolves to.
                        └─> ClassesService.flatMap(…)(this: undefined, candidate: ts.ClassDeclaration): ts.Declaration[] [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:232]
                          └─> ClassesService.readMemberDeclarations(…): Declaration[] [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:148]
                             ↳ Reads one member's concrete declarations off a candidate class.
                            └─> ClassesService.filter(…)(member: ts.PropertyDeclaration | ts.MethodDeclaration): boolean [projects/ic-suite/callidescope/callidescope-graph/src/modules/classes/classes.service.ts:162]
```

再打四通电话

**4.四. `gateExecutor`** 15个孤儿

```text
🚀 gateExecutor(…): Promise<{ success: boolean; }> [projects/ic-suite/callidescope/callidescope-nx/src/executors/gate/executor.ts:31]
   ↳ Fails one project's task when its call stacks broke the limits it is held to.
  └─> PluginService.runGate(args: RunGateArguments): Promise<RunTraceResult> [projects/ic-suite/callidescope/callidescope-nx/src/modules/plugin/plugin.service.ts:368]
     ↳ Traces the resolved directories and judges what it found against the limits every project in scope declared.
    └─> CallidescopeService.trace(args: TraceArguments): Promise<TraceOutcome> [projects/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:408]
       ↳ Traces a workspace and returns everything the run found.
      └─> CallidescopeService.analyze(…): AnalyzeOutcome [projects/ic-suite/callidescope/callidescope-cli/src/modules/callidescope/callidescope.service.ts:295]
         ↳ Derives every finding from the collected callables.
        └─> GraphAssemblyService.assemble(args: AssembleGraphArguments): AssembledGraph [projects/ic-suite/callidescope/callidescope-graph/src/modules/graph/graph-assembly.service.ts:43]
           ↳ Builds the call graph and everything derived from it.
          └─> EdgesService.build(args: BuildEdgesArguments): EdgeCollection [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:251]
             ↳ Builds every edge in the graph, and records the calls it could not.
            └─> EdgesService.buildSiteEdges(…): { edges: CallEdge[]; unresolved: UnresolvedCall[]; } [projects/ic-suite/callidescope/callidescope-graph/src/modules/edges/edges.service.ts:59]
               ↳ Turns o
```

## 常见问题

### @callidescope/nx 是什么？

Nx 插件, 提供工程范围调用存储跟踪和 Nx 依赖图上的深度显示

### 如何安装 @callidescope/nx？

在项目目录运行 npm install @callidescope/nx，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：typescript（^6\.0\.3）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @callidescope/nx 支持 TypeScript 吗？

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

### @callidescope/nx 支持 ESM 还是 CommonJS？

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

### @callidescope/nx 可以商用吗？

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

### @callidescope/nx 的下载量有多少？

根据 npm 官方下载统计，@callidescope/nx 在 2026/10/09 – 2026/11/07 这 30 天内被下载 8,369 次，日均约 279 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @callidescope/nx 还在维护吗？

最新版本 0\.0\.75 发布于 2026/11/09（今天）；至今共发布 73 个版本，其中过去 12 个月发布了 73 个；首次发布于 2026/10/05。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

