@dsh-plus/agent-preset-rea 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.ts CHANGED
@@ -11,7 +11,12 @@ declare const Config: z<Schemastery.ObjectS<NoInfer<{
11
11
  description: z<string, string, "defined">;
12
12
  order: z<number, number, "defined">;
13
13
  personaPrefix: z<string, string, "volatile-defined">;
14
- mcpEnabled: z<boolean, boolean, "defined">;
14
+ mcpEnabled: z<boolean, boolean, "volatile-defined">;
15
+ skillEnabled: z<boolean, boolean, "volatile-defined">;
16
+ reverseSkillEnabled: z<boolean, boolean, "volatile-defined">;
17
+ reverseSkillRepo: z<string, string, "defined">;
18
+ reverseSkillRef: z<string, string, "defined">;
19
+ reverseSkillGroups: z<string[], string[], "defined">;
15
20
  mcpServerName: z<string, string, "defined">;
16
21
  reaVersion: z<string, string, "defined">;
17
22
  installRoot: z<string, string, "defined">;
@@ -29,7 +34,12 @@ declare const Config: z<Schemastery.ObjectS<NoInfer<{
29
34
  description: z<string, string, "defined">;
30
35
  order: z<number, number, "defined">;
31
36
  personaPrefix: z<string, string, "volatile-defined">;
32
- mcpEnabled: z<boolean, boolean, "defined">;
37
+ mcpEnabled: z<boolean, boolean, "volatile-defined">;
38
+ skillEnabled: z<boolean, boolean, "volatile-defined">;
39
+ reverseSkillEnabled: z<boolean, boolean, "volatile-defined">;
40
+ reverseSkillRepo: z<string, string, "defined">;
41
+ reverseSkillRef: z<string, string, "defined">;
42
+ reverseSkillGroups: z<string[], string[], "defined">;
33
43
  mcpServerName: z<string, string, "defined">;
34
44
  reaVersion: z<string, string, "defined">;
35
45
  installRoot: z<string, string, "defined">;
@@ -76,17 +86,83 @@ interface JobOperation {
76
86
  phases: string[];
77
87
  run(ctx: JobTaskContext): Promise<string>;
78
88
  }
89
+ /** 作业依赖:生效配置、命令执行面、作业完成后的现探刷新。 */
90
+ interface JobDeps {
91
+ config: AgentPresetReaConfig;
92
+ runner: CommandRunner;
93
+ refresh(): void;
94
+ }
79
95
  /** 实际 runner:spawn 子进程、逐行回调、AbortSignal 触发即杀。 */
80
96
  declare const spawnRunner: CommandRunner;
81
- /**
82
- * npm 子进程环境:继承宿主环境,附带代理端口(port > 0 时同时给 npm 与
83
- * prebuild-install 注入代理——后者只认 `https_proxy` 系列环境变量,
84
- * 这是原生依赖 prebuild 下载卡死的正解)。
85
- */
97
+ /** npm 子进程环境({@link commandEnv} 的 npm 形态)。 */
86
98
  declare function npmEnv(config: AgentPresetReaConfig): Record<string, string>;
87
99
  /** 版本收窄:进命令前把配置里的钉版校验成纯版本号。 */
88
100
  declare function safeVersion(version: string): string;
89
101
  //#endregion
102
+ //#region src/reverse.d.ts
103
+ /** 本技能源在插件数据目录下的子目录名。 */
104
+ declare const REVERSE_DIR = "reverse-skill";
105
+ /** 仓库树目录名(换目录作业的替换单元是它的父目录)。 */
106
+ declare const REVERSE_TREE_DIR = "repo";
107
+ /** 默认仓库。 */
108
+ declare const REVERSE_DEFAULT_REPO = "zhaoxuya520/reverse-skill";
109
+ /** 手动更新作业阶段名。 */
110
+ declare const REVERSE_PHASES: string[];
111
+ /** 受管路径。 */
112
+ interface ReversePaths {
113
+ /** 技能源根(`repo/` 与 `manifest.json` 的父目录)。 */
114
+ root: string;
115
+ /** 仓库树根。 */
116
+ tree: string;
117
+ }
118
+ /** 清单(溯源事实;sha 已是内容级溯源,故不再逐文件复算哈希)。 */
119
+ interface ReverseManifest {
120
+ source: string;
121
+ repo: string;
122
+ /** 配置里的 ref(空串 = 仓库默认分支)。 */
123
+ ref: string;
124
+ /** GitHub 机构 API 解析到的提交 sha。 */
125
+ sha: string;
126
+ /** 仓库 `VERSION` 文件内容(无则 null)。 */
127
+ version: string | null;
128
+ /** 树内文件数。 */
129
+ files: number;
130
+ /** 树内发现的技能组(相对路径)。 */
131
+ groups: string[];
132
+ updatedAt: string;
133
+ }
134
+ /** 技能源现状。 */
135
+ interface ReverseState {
136
+ installed: boolean;
137
+ repo: string;
138
+ ref: string | null;
139
+ sha: string | null;
140
+ version: string | null;
141
+ files: number;
142
+ /** 树内发现的全部技能组(相对路径)。 */
143
+ groups: string[];
144
+ updatedAt: string | null;
145
+ }
146
+ /** 受管路径(固定落插件数据目录,无部署方可调项)。 */
147
+ declare function reversePaths(): ReversePaths;
148
+ /** 发现树内的技能组:直接子目录带 SKILL.md 的目录(排除树根与 SKIP_DIRS)。 */
149
+ declare function discoverSkillGroups(tree: string): string[];
150
+ /** 现探技能源(清单可读 + 树在 + 至少一个技能组才算可用)。 */
151
+ declare function probeReverse(config: AgentPresetReaConfig, repo?: string): ReverseState;
152
+ /**
153
+ * 挂进本预设的技能组目录:配置选中 ∩ 树内发现。
154
+ *
155
+ * 组是否真实存在由现探的 {@link discoverSkillGroups} 负责(发现即存在),这里不再
156
+ * 二次查盘——否则「未安装/组缺席」两种语义会在两处各判一遍。
157
+ * @param config - 插件配置。
158
+ * @param state - 现探现状。
159
+ */
160
+ declare function reverseSkillDirs(config: AgentPresetReaConfig, state: ReverseState): string[];
161
+ /** 作业依赖(与 manager 的作业同形:配置 + 命令执行面 + 现探刷新)。 */
162
+ type ReverseDeps = JobDeps;
163
+ /** 手动更新作业:拉默认分支/指定 ref 的最新提交,解包后换目录并写清单。 */
164
+ declare function runReverseSkillJob(deps: ReverseDeps, ctx: JobTaskContext): Promise<string>;
165
+ //#endregion
90
166
  //#region src/manager.d.ts
91
167
  /** npm 包名。 */
92
168
  declare const REA_PACKAGE = "rea-agents";
@@ -119,6 +195,8 @@ interface SkillState {
119
195
  interface RuntimeSnapshot {
120
196
  install: ReaInstall | null;
121
197
  skill: SkillState;
198
+ /** GitHub 技能源(zhaoxuya520/reverse-skill)现状。 */
199
+ reverse: ReverseState;
122
200
  }
123
201
  /** skill 清单(与随包夹具同形;更新副本多写入 updatedAt)。 */
124
202
  interface SkillManifest {
@@ -146,10 +224,11 @@ interface ReaManager {
146
224
  snapshot(): RuntimeSnapshot;
147
225
  /** 重新现探并更新快照(作业完成、volatile 变更后调用)。 */
148
226
  refresh(): RuntimeSnapshot;
149
- /** 受管作业(安装/更新 REA 包、更新 skill)。 */
227
+ /** 受管作业(安装/更新 REA 包、更新 REA skill、更新 reverse-skill)。 */
150
228
  operations(overrides?: JobOverrides): {
151
229
  install: JobOperation;
152
230
  skill: JobOperation;
231
+ reverse: JobOperation;
153
232
  };
154
233
  }
155
234
  /** 安装作业阶段名。 */
@@ -170,12 +249,6 @@ declare function probeInstall(paths: ManagerPaths): ReaInstall | null;
170
249
  declare function probeSkill(paths: ManagerPaths, bundledRoot: string, bundledVersion: string): SkillState;
171
250
  /** 现探运行期事实。 */
172
251
  declare function probeRuntime(config: AgentPresetReaConfig, bundledRoot: string, bundledVersion: string): RuntimeSnapshot;
173
- /** 作业依赖:生效配置、命令执行面、作业完成后的现探刷新。 */
174
- interface JobDeps {
175
- config: AgentPresetReaConfig;
176
- runner: CommandRunner;
177
- refresh(): void;
178
- }
179
252
  /** 生效配置:作业可带一次性覆盖(卡片未保存的代理端口即时可用)。 */
180
253
  declare function configWith(base: AgentPresetReaConfig, overrides?: JobOverrides): AgentPresetReaConfig;
181
254
  /** 建一个 REA 管理器。 */
@@ -214,8 +287,8 @@ declare function reaPresetDefinition(config: AgentPresetReaConfig, runtime?: Run
214
287
  * 两端共用同一份字段定义,避免「宿主改了字段、卡片还在读老名字」的静默漂移。
215
288
  * @module @dsh-plus/agent-preset-rea/dto
216
289
  */
217
- /** 作业种类。 */
218
- type JobKind = 'install' | 'skill';
290
+ /** 作业种类:REA 包安装/更新、REA skill 更新、reverse-skill 更新。 */
291
+ type JobKind = 'install' | 'skill' | 'reverse';
219
292
  /** 作业状态。 */
220
293
  type JobState = 'running' | 'ok' | 'error' | 'cancelled';
221
294
  /** 作业进度(按阶段推进;percent 为进入该阶段时的完成度)。 */
@@ -265,20 +338,46 @@ interface McpDto {
265
338
  command: string | null;
266
339
  args: string[];
267
340
  }
341
+ /** GitHub 技能源(zhaoxuya520/reverse-skill)事实。 */
342
+ interface ReverseSkillDto {
343
+ installed: boolean;
344
+ repo: string;
345
+ /** 清单记录的 ref(空串 = 安装时取的默认分支)。 */
346
+ ref: string | null;
347
+ /** 提交 sha(内容级溯源)。 */
348
+ sha: string | null;
349
+ /** 仓库 VERSION 文件内容。 */
350
+ version: string | null;
351
+ root: string;
352
+ tree: string;
353
+ files: number;
354
+ /** 树内发现的全部技能组(相对安装树根)。 */
355
+ groups: string[];
356
+ /** 配置选中且实际挂进预设的组。 */
357
+ activeGroups: string[];
358
+ updatedAt: string | null;
359
+ }
268
360
  /** `GET /status` 响应。 */
269
361
  interface StatusDto {
270
362
  config: {
271
363
  reaVersion: string;
272
364
  proxyPort: number;
273
365
  mcpEnabled: boolean;
366
+ skillEnabled: boolean;
367
+ reverseSkillEnabled: boolean;
368
+ reverseSkillRepo: string;
369
+ reverseSkillRef: string;
370
+ reverseSkillGroups: string[];
274
371
  installRoot: string;
275
372
  };
276
373
  install: InstallDto;
277
374
  skill: SkillDto;
375
+ reverse: ReverseSkillDto;
278
376
  mcp: McpDto;
279
377
  paths: {
280
378
  installRoot: string;
281
379
  skillRoot: string;
380
+ reverseRoot: string;
282
381
  };
283
382
  job: JobDto | null;
284
383
  }
@@ -408,11 +507,19 @@ declare function registerReaRoutes(ctx: Context, options: ReaRoutesOptions): voi
408
507
  */
409
508
  declare const BUNDLED_SKILL_ROOT: string;
410
509
  /**
411
- * skill-filesystem 的追加根清单。
510
+ * REA skill 根(随包副本,或手动更新副本——后者存在即替代前者)。
511
+ * @param updatedRoot - 手动更新副本根(来自 manager 现探)。
512
+ */
513
+ declare function reaSkillDirs(updatedRoot?: string | null): string[];
514
+ /**
515
+ * 本预设 `skill-filesystem` 行的完整追加根清单,按三个开关裁剪:
516
+ * - `skillEnabled=false` → 不挂 REA 官方 skill(安装副本仍留在磁盘);
517
+ * - `reverseSkillEnabled=false` → 不挂 reverse-skill 的技能组;
518
+ * - `extraSkillDirs` 是部署方追加项,不受开关影响(关掉的是本插件自带的两个源)。
412
519
  * @param config - 插件配置。
413
- * @param updatedRoot - 手动更新副本根(存在即替代随包根;来自 manager 现探)。
520
+ * @param runtime - 现探运行期事实。
414
521
  */
415
- declare function reaSkillDirs(config: AgentPresetReaConfig, updatedRoot?: string | null): string[];
522
+ declare function presetSkillDirs(config: AgentPresetReaConfig, runtime: RuntimeSnapshot): string[];
416
523
  //#endregion
417
524
  //#region src/index.d.ts
418
525
  declare const name = "dsh-plus-agent-preset-rea";
@@ -428,4 +535,4 @@ declare const inject: readonly [];
428
535
  */
429
536
  declare function apply(ctx: Context, config: AgentPresetReaConfigFields): void;
430
537
  //#endregion
431
- export { ADDED_ROWS, type AgentPresetReaConfig, type AgentPresetReaConfigFields, BUNDLED_SKILL_ROOT, CONFIG_DELTAS, type CommandRunner, Config, DEFAULT_MCP_COMMAND, INPUT_SCHEMA_PROFILES, INSTALL_PHASES, type InstallDto, type InstalledEntry, type JobActionDto, type JobBoard, JobCancelled, type JobDeps, type JobDto, type JobKind, type JobOperation, type JobOverrides, type JobProgressDto, type JobSnapshot, type JobState, type JobTaskContext, type ManagerPaths, type McpDto, type McpLaunch, NPM, OUTPUT_SCHEMA_PROFILES, PLAN_MODE_SECTION, type PresetRegistrar, REA_INSTALL_DIR, REA_PACKAGE, REA_PINNED_VERSION, REA_PRESET_ID, REA_SKILL_DIR, REA_SKILL_NAME, ROUTE_BASE, type ReaInstall, type ReaManager, type RuntimeSnapshot, SETTINGS_NS, SKILL_PHASES, type SkillDto, type SkillManifest, type SkillState, type StatusDto, type Unregister, apply, configWith, createJobBoard, createManager, createPresetRegistrar, emptyRuntime, inject, managerPaths, name, npmEnv, probeInstall, probeRuntime, probeSkill, reaMcpArgs, reaMcpEnv, reaMcpLaunch, reaPresetDefinition, reaSkillDirs, registerReaRoutes, safeVersion, spawnRunner, statusPayload };
538
+ export { ADDED_ROWS, type AgentPresetReaConfig, type AgentPresetReaConfigFields, BUNDLED_SKILL_ROOT, CONFIG_DELTAS, type CommandRunner, Config, DEFAULT_MCP_COMMAND, INPUT_SCHEMA_PROFILES, INSTALL_PHASES, type InstallDto, type InstalledEntry, type JobActionDto, type JobBoard, JobCancelled, type JobDeps, type JobDto, type JobKind, type JobOperation, type JobOverrides, type JobProgressDto, type JobSnapshot, type JobState, type JobTaskContext, type ManagerPaths, type McpDto, type McpLaunch, NPM, OUTPUT_SCHEMA_PROFILES, PLAN_MODE_SECTION, type PresetRegistrar, REA_INSTALL_DIR, REA_PACKAGE, REA_PINNED_VERSION, REA_PRESET_ID, REA_SKILL_DIR, REA_SKILL_NAME, REVERSE_DEFAULT_REPO, REVERSE_DIR, REVERSE_PHASES, REVERSE_TREE_DIR, ROUTE_BASE, type ReaInstall, type ReaManager, type ReverseManifest, type ReversePaths, type ReverseSkillDto, type ReverseState, type RuntimeSnapshot, SETTINGS_NS, SKILL_PHASES, type SkillDto, type SkillManifest, type SkillState, type StatusDto, type Unregister, apply, configWith, createJobBoard, createManager, createPresetRegistrar, discoverSkillGroups, emptyRuntime, inject, managerPaths, name, npmEnv, presetSkillDirs, probeInstall, probeReverse, probeRuntime, probeSkill, reaMcpArgs, reaMcpEnv, reaMcpLaunch, reaPresetDefinition, reaSkillDirs, registerReaRoutes, reversePaths, reverseSkillDirs, runReverseSkillJob, safeVersion, spawnRunner, statusPayload };