@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/client.js +363 -105
- package/lib/index.d.ts +127 -20
- package/lib/index.js +510 -196
- package/package.json +2 -2
- package/src/client/api.ts +7 -6
- package/src/client/card.tsx +8 -4
- package/src/client/client.ts +2 -2
- package/src/client/draft.ts +21 -2
- package/src/client/i18n.ts +42 -2
- package/src/client/install.tsx +157 -58
- package/src/client/toggles.tsx +57 -0
- package/src/config.ts +34 -5
- package/src/definition.ts +6 -6
- package/src/dto.ts +29 -3
- package/src/exec.ts +34 -12
- package/src/index.ts +21 -1
- package/src/manager.ts +14 -9
- package/src/reverse.ts +335 -0
- package/src/routes.ts +108 -66
- package/src/skill.ts +23 -8
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
|
|
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
|
|
520
|
+
* @param runtime - 现探运行期事实。
|
|
414
521
|
*/
|
|
415
|
-
declare function
|
|
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 };
|