@ai-setting/roy-agent-core 1.5.13-test → 1.5.15-test

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.
Files changed (141) hide show
  1. package/package.json +1 -1
  2. package/dist/config/index.d.ts +0 -1250
  3. package/dist/config/index.js +0 -32
  4. package/dist/env/agent/index.d.ts +0 -2279
  5. package/dist/env/agent/index.js +0 -24
  6. package/dist/env/commands/index.d.ts +0 -1131
  7. package/dist/env/commands/index.js +0 -14
  8. package/dist/env/debug/formatters/index.d.ts +0 -236
  9. package/dist/env/debug/formatters/index.js +0 -11
  10. package/dist/env/debug/index.d.ts +0 -1652
  11. package/dist/env/debug/index.js +0 -26
  12. package/dist/env/hook/index.d.ts +0 -279
  13. package/dist/env/hook/index.js +0 -29
  14. package/dist/env/index.d.ts +0 -3481
  15. package/dist/env/index.js +0 -82
  16. package/dist/env/llm/index.d.ts +0 -1760
  17. package/dist/env/llm/index.js +0 -40
  18. package/dist/env/log-trace/index.d.ts +0 -1574
  19. package/dist/env/log-trace/index.js +0 -83
  20. package/dist/env/mcp/index.d.ts +0 -1331
  21. package/dist/env/mcp/index.js +0 -39
  22. package/dist/env/mcp/tool/index.d.ts +0 -183
  23. package/dist/env/mcp/tool/index.js +0 -14
  24. package/dist/env/memory/built-in/index.d.ts +0 -232
  25. package/dist/env/memory/built-in/index.js +0 -11
  26. package/dist/env/memory/index.d.ts +0 -1799
  27. package/dist/env/memory/index.js +0 -56
  28. package/dist/env/memory/plugin/index.d.ts +0 -747
  29. package/dist/env/memory/plugin/index.js +0 -36
  30. package/dist/env/prompt/index.d.ts +0 -1164
  31. package/dist/env/prompt/index.js +0 -20
  32. package/dist/env/session/index.d.ts +0 -1908
  33. package/dist/env/session/index.js +0 -25
  34. package/dist/env/session/storage/index.d.ts +0 -564
  35. package/dist/env/session/storage/index.js +0 -18
  36. package/dist/env/skill/index.d.ts +0 -1266
  37. package/dist/env/skill/index.js +0 -34
  38. package/dist/env/skill/tool/index.d.ts +0 -193
  39. package/dist/env/skill/tool/index.js +0 -9
  40. package/dist/env/task/delegate/index.d.ts +0 -1612
  41. package/dist/env/task/delegate/index.js +0 -18
  42. package/dist/env/task/events/index.d.ts +0 -171
  43. package/dist/env/task/events/index.js +0 -7
  44. package/dist/env/task/hooks/index.d.ts +0 -624
  45. package/dist/env/task/hooks/index.js +0 -7
  46. package/dist/env/task/index.d.ts +0 -1553
  47. package/dist/env/task/index.js +0 -34
  48. package/dist/env/task/plugins/index.d.ts +0 -466
  49. package/dist/env/task/plugins/index.js +0 -23
  50. package/dist/env/task/storage/index.d.ts +0 -241
  51. package/dist/env/task/storage/index.js +0 -14
  52. package/dist/env/task/tools/index.d.ts +0 -1485
  53. package/dist/env/task/tools/index.js +0 -17
  54. package/dist/env/task/tools/operation/index.d.ts +0 -1484
  55. package/dist/env/task/tools/operation/index.js +0 -15
  56. package/dist/env/tool/built-in/index.d.ts +0 -218
  57. package/dist/env/tool/built-in/index.js +0 -25
  58. package/dist/env/tool/index.d.ts +0 -1396
  59. package/dist/env/tool/index.js +0 -39
  60. package/dist/env/workflow/decorators/index.d.ts +0 -2161
  61. package/dist/env/workflow/decorators/index.js +0 -27
  62. package/dist/env/workflow/engine/index.d.ts +0 -3453
  63. package/dist/env/workflow/engine/index.js +0 -28
  64. package/dist/env/workflow/index.d.ts +0 -3546
  65. package/dist/env/workflow/index.js +0 -136
  66. package/dist/env/workflow/nodes/index.d.ts +0 -2092
  67. package/dist/env/workflow/nodes/index.js +0 -19
  68. package/dist/env/workflow/service/index.d.ts +0 -227
  69. package/dist/env/workflow/service/index.js +0 -13
  70. package/dist/env/workflow/storage/index.d.ts +0 -165
  71. package/dist/env/workflow/storage/index.js +0 -27
  72. package/dist/env/workflow/tools/index.d.ts +0 -416
  73. package/dist/env/workflow/tools/index.js +0 -159
  74. package/dist/env/workflow/types/index.d.ts +0 -2255
  75. package/dist/env/workflow/types/index.js +0 -98
  76. package/dist/env/workflow/utils/index.d.ts +0 -2031
  77. package/dist/env/workflow/utils/index.js +0 -637
  78. package/dist/index.d.ts +0 -7858
  79. package/dist/index.js +0 -399
  80. package/dist/shared/@ai-setting/roy-agent-core-0rtxwr28.js +0 -258
  81. package/dist/shared/@ai-setting/roy-agent-core-0vbdz0x7.js +0 -36
  82. package/dist/shared/@ai-setting/roy-agent-core-1akcqxj9.js +0 -349
  83. package/dist/shared/@ai-setting/roy-agent-core-1ce3fqrk.js +0 -117
  84. package/dist/shared/@ai-setting/roy-agent-core-2dhd60aw.js +0 -11
  85. package/dist/shared/@ai-setting/roy-agent-core-3jywqmdd.js +0 -393
  86. package/dist/shared/@ai-setting/roy-agent-core-3rr5k71j.js +0 -200
  87. package/dist/shared/@ai-setting/roy-agent-core-44hnfb02.js +0 -299
  88. package/dist/shared/@ai-setting/roy-agent-core-4t40mkpv.js +0 -206
  89. package/dist/shared/@ai-setting/roy-agent-core-4txzpsbt.js +0 -393
  90. package/dist/shared/@ai-setting/roy-agent-core-5x94xmt6.js +0 -350
  91. package/dist/shared/@ai-setting/roy-agent-core-69jskqjg.js +0 -180
  92. package/dist/shared/@ai-setting/roy-agent-core-6kvtahqv.js +0 -408
  93. package/dist/shared/@ai-setting/roy-agent-core-7fgf85wc.js +0 -284
  94. package/dist/shared/@ai-setting/roy-agent-core-81w1963m.js +0 -762
  95. package/dist/shared/@ai-setting/roy-agent-core-8gxth0eh.js +0 -10
  96. package/dist/shared/@ai-setting/roy-agent-core-92z6t4he.js +0 -14
  97. package/dist/shared/@ai-setting/roy-agent-core-93zfb3r1.js +0 -922
  98. package/dist/shared/@ai-setting/roy-agent-core-9yxb3ty9.js +0 -15
  99. package/dist/shared/@ai-setting/roy-agent-core-b0x5dda6.js +0 -1130
  100. package/dist/shared/@ai-setting/roy-agent-core-bcbqy27c.js +0 -14
  101. package/dist/shared/@ai-setting/roy-agent-core-bvr1761x.js +0 -653
  102. package/dist/shared/@ai-setting/roy-agent-core-ctdhjv68.js +0 -93
  103. package/dist/shared/@ai-setting/roy-agent-core-d7cyjkf7.js +0 -872
  104. package/dist/shared/@ai-setting/roy-agent-core-dh9d7a3m.js +0 -11
  105. package/dist/shared/@ai-setting/roy-agent-core-e25xkv53.js +0 -64
  106. package/dist/shared/@ai-setting/roy-agent-core-eajcvp4e.js +0 -378
  107. package/dist/shared/@ai-setting/roy-agent-core-f7q2x5z6.js +0 -492
  108. package/dist/shared/@ai-setting/roy-agent-core-fs0mn2jk.js +0 -52
  109. package/dist/shared/@ai-setting/roy-agent-core-g1s2h0e5.js +0 -171
  110. package/dist/shared/@ai-setting/roy-agent-core-g99pxzn5.js +0 -862
  111. package/dist/shared/@ai-setting/roy-agent-core-gbqcyegm.js +0 -1387
  112. package/dist/shared/@ai-setting/roy-agent-core-gjq1yk68.js +0 -208
  113. package/dist/shared/@ai-setting/roy-agent-core-gq20wsgv.js +0 -139
  114. package/dist/shared/@ai-setting/roy-agent-core-gwc4h96n.js +0 -534
  115. package/dist/shared/@ai-setting/roy-agent-core-jfh9q2qh.js +0 -204
  116. package/dist/shared/@ai-setting/roy-agent-core-jvatggbb.js +0 -603
  117. package/dist/shared/@ai-setting/roy-agent-core-kkbwepqb.js +0 -97
  118. package/dist/shared/@ai-setting/roy-agent-core-pjr12nnd.js +0 -587
  119. package/dist/shared/@ai-setting/roy-agent-core-psv4v63c.js +0 -176
  120. package/dist/shared/@ai-setting/roy-agent-core-psvxt4c9.js +0 -60
  121. package/dist/shared/@ai-setting/roy-agent-core-qqceba6k.js +0 -442
  122. package/dist/shared/@ai-setting/roy-agent-core-qxhq8ven.js +0 -57
  123. package/dist/shared/@ai-setting/roy-agent-core-qxnbvgwe.js +0 -66
  124. package/dist/shared/@ai-setting/roy-agent-core-r9ezzemr.js +0 -10
  125. package/dist/shared/@ai-setting/roy-agent-core-rhmtwnw1.js +0 -267
  126. package/dist/shared/@ai-setting/roy-agent-core-rvv6ydff.js +0 -584
  127. package/dist/shared/@ai-setting/roy-agent-core-rvxg1wps.js +0 -102
  128. package/dist/shared/@ai-setting/roy-agent-core-satmq6sh.js +0 -549
  129. package/dist/shared/@ai-setting/roy-agent-core-sx7wsvnn.js +0 -15
  130. package/dist/shared/@ai-setting/roy-agent-core-t94ktchq.js +0 -213
  131. package/dist/shared/@ai-setting/roy-agent-core-vf215qfv.js +0 -812
  132. package/dist/shared/@ai-setting/roy-agent-core-vkz81f7v.js +0 -1316
  133. package/dist/shared/@ai-setting/roy-agent-core-vn2bc59q.js +0 -1205
  134. package/dist/shared/@ai-setting/roy-agent-core-wa1kzqky.js +0 -328
  135. package/dist/shared/@ai-setting/roy-agent-core-wft9ra24.js +0 -20
  136. package/dist/shared/@ai-setting/roy-agent-core-wrcy0h6z.js +0 -2098
  137. package/dist/shared/@ai-setting/roy-agent-core-xq8hhqb8.js +0 -419
  138. package/dist/shared/@ai-setting/roy-agent-core-xs5rsgat.js +0 -368
  139. package/dist/shared/@ai-setting/roy-agent-core-zbkpc41z.js +0 -377
  140. package/dist/shared/@ai-setting/roy-agent-core-zgypchmt.js +0 -172
  141. package/dist/shared/@ai-setting/roy-agent-core-zpn0bqa8.js +0 -103
@@ -1,1553 +0,0 @@
1
- /**
2
- * @fileoverview Hook 系统统一类型定义
3
- *
4
- * 提供所有 Component 使用的统一 Hook 接口
5
- */
6
- /**
7
- * Hook 执行阶段
8
- */
9
- type HookPhase = "before" | "after" | "error";
10
- /**
11
- * Hook 元信息
12
- */
13
- interface HookMeta {
14
- /** Hook 唯一名称 */
15
- name: string;
16
- /** 执行优先级,默认 0,数值越小越先执行 */
17
- priority?: number;
18
- /** 描述 */
19
- description?: string;
20
- }
21
- /**
22
- * 统一 Hook 上下文
23
- *
24
- * 泛型参数 T 表示该 Component 的上下文数据类型
25
- */
26
- interface HookContext<T = unknown> {
27
- /** 当前组件信息 */
28
- component: {
29
- /** 组件名称 */
30
- name: string;
31
- /** 组件版本 */
32
- version: string;
33
- };
34
- /** 上下文数据(Component 特定) */
35
- data: T;
36
- /** 元数据(可用于传递额外信息) */
37
- metadata: Record<string, unknown>;
38
- /** 执行阶段 */
39
- phase: HookPhase;
40
- /** 关联的 hook 点名称 */
41
- hookPoint: string;
42
- }
43
- /**
44
- * 统一 Hook 接口
45
- *
46
- * 所有 Component 的 Hook 都应实现此接口
47
- */
48
- interface Hook<T = unknown> extends HookMeta {
49
- /** 执行 Hook
50
- * @param ctx 上下文
51
- */
52
- execute(ctx: HookContext<T>): void | Promise<void>;
53
- }
54
- /**
55
- * Hook 函数类型(便捷别名)
56
- */
57
- type HookFn<T = unknown> = (ctx: HookContext<T>) => void | Promise<void>;
58
- /**
59
- * Hook 干预动作类型
60
- */
61
- type HookActionType = "stop" | "retry" | "compress" | "extract_memory" | "inject_message" | "skip_tool" | "custom";
62
- /**
63
- * Hook 干预动作
64
- */
65
- interface HookAction {
66
- /** 动作类型 */
67
- type: HookActionType;
68
- /** 动作参数 */
69
- params?: Record<string, unknown>;
70
- /** 动作描述 */
71
- description?: string;
72
- }
73
- /**
74
- * Hook 执行结果
75
- */
76
- interface HookResult {
77
- /** 是否被停止 */
78
- stopped?: boolean;
79
- /** 干预动作(如果有) */
80
- action?: HookAction;
81
- /** 执行结果数据 */
82
- results?: unknown[];
83
- }
84
- /**
85
- * HookManager 配置
86
- */
87
- interface HookManagerOptions {
88
- /** 组件名称(用于上下文) */
89
- componentName?: string;
90
- /** 组件版本(用于上下文) */
91
- componentVersion?: string;
92
- /** 默认优先级 */
93
- defaultPriority?: number;
94
- }
95
- /**
96
- * HookManager
97
- *
98
- * 统一管理 Component 的 Hook
99
- *
100
- * @example
101
- * ```typescript
102
- * const manager = new HookManager<MyContext>();
103
- *
104
- * // 注册 Hook
105
- * manager.register("before-action", {
106
- * name: "my-hook",
107
- * priority: 10,
108
- * execute: async (ctx) => { /* ... *\/ }
109
- * });
110
- *
111
- * // 执行 Hooks
112
- * await manager.execute("before-action", data);
113
- * ```
114
- */
115
- declare class HookManager<T = unknown> {
116
- private _hooks;
117
- private componentName;
118
- private componentVersion;
119
- private defaultPriority;
120
- constructor(options?: HookManagerOptions);
121
- /**
122
- * 注册 Hook 到指定 hook 点
123
- */
124
- register(hookPoint: string, hook: Hook<T>): void;
125
- /**
126
- * 注册多个 Hook
127
- */
128
- registerMany(hookPoint: string, hooks: Hook<T>[]): void;
129
- /**
130
- * 按名称取消注册 Hook
131
- * @returns 是否成功取消注册
132
- */
133
- unregister(hookPoint: string, name: string): boolean;
134
- /**
135
- * 取消注册所有指定 hook 点的 Hook
136
- */
137
- unregisterAll(hookPoint: string): void;
138
- /**
139
- * 执行指定 hook 点的所有 Hook
140
- */
141
- execute(hookPoint: string, data: T, metadata?: Record<string, unknown>): Promise<void>;
142
- /**
143
- * 执行指定 hook 点的所有 Hook 并收集返回值
144
- */
145
- executeAndCollect<R>(hookPoint: string, data: T, metadata?: Record<string, unknown>): Promise<R[]>;
146
- /**
147
- * 获取指定 hook 点的 Hook 数量
148
- */
149
- count(hookPoint: string): number;
150
- /**
151
- * 清空所有 Hook
152
- */
153
- clear(): void;
154
- /**
155
- * 获取所有已注册的 hook 点
156
- */
157
- getHookPoints(): string[];
158
- /**
159
- * 检查 hook 点是否有任何 Hook
160
- */
161
- hasHooks(hookPoint: string): boolean;
162
- /**
163
- * 设置组件信息
164
- */
165
- setComponentInfo(name: string, version: string): void;
166
- /**
167
- * 获取所有注册的 hooks(只读副本)
168
- */
169
- get hooks(): ReadonlyMap<string, Hook<T>[]>;
170
- /**
171
- * 执行 Hook 并支持干预机制
172
- *
173
- * 如果任何一个 Hook 返回 { stop: true },执行会停止
174
- * Hook 可以通过返回 HookResult 来执行干预动作
175
- *
176
- * @param hookPoint Hook 点
177
- * @param data 数据
178
- * @param metadata 元数据
179
- * @returns 执行结果
180
- */
181
- executeWithIntervention(hookPoint: string, data: T, metadata?: Record<string, unknown>): Promise<HookResult>;
182
- /**
183
- * 获取或创建 hook 列表
184
- */
185
- private getOrCreateHooks;
186
- /**
187
- * 按优先级排序 Hook
188
- *
189
- * 优先级相同时保持原顺序(稳定排序)
190
- */
191
- private sortHooks;
192
- /**
193
- * 创建 Hook 上下文
194
- */
195
- private createContext;
196
- /**
197
- * 安全执行 Hook(错误隔离)
198
- */
199
- private safeExecute;
200
- /**
201
- * 安全执行 Hook 并返回结果
202
- */
203
- private safeExecuteAndReturn;
204
- }
205
- import { ZodType as ZodType3, ZodTypeDef as ZodTypeDef2 } from "zod";
206
- /**
207
- * @fileoverview Environment types and interfaces
208
- *
209
- * 定义 Environment 的核心类型,包括:
210
- * - Environment 配置
211
- * - EnvEvent 事件类型
212
- */
213
- /**
214
- * Environment Config
215
- */
216
- interface EnvironmentConfig {
217
- /** 环境名称 */
218
- name: string;
219
- /** 环境版本 */
220
- version: string;
221
- /** 是否启用 */
222
- enabled: boolean;
223
- }
224
- /**
225
- * EnvEvent 元信息
226
- */
227
- interface EnvEventMetadata {
228
- /** 触发事件的 session ID */
229
- trigger_session_id?: string;
230
- /** 触发事件的 agent ID */
231
- trigger_agent_id?: string;
232
- /** Agent 名称 */
233
- trigger_agent_name?: string;
234
- /** 环境名称 */
235
- env_name?: string;
236
- /** 事件来源 */
237
- source?: string;
238
- /** 其他元数据 */
239
- [key: string]: unknown;
240
- }
241
- /**
242
- * EnvEvent
243
- *
244
- * 统一的事件机制,用于:
245
- * - Stream 事件(stream.start, stream.text, stream.completed 等)
246
- * - 工具调用事件(tool.call, tool.result 等)
247
- * - 会话事件(session.created, session.updated 等)
248
- * - Agent 事件(agent.thinking, agent.acting 等)
249
- */
250
- interface EnvEvent<T = unknown> {
251
- /** 事件 ID */
252
- id: string;
253
- /** 事件类型 */
254
- type: string;
255
- /** 时间戳 */
256
- timestamp: number;
257
- /** 元信息 */
258
- metadata: EnvEventMetadata;
259
- /** 事件负载 */
260
- payload: T;
261
- }
262
- /**
263
- * EnvEvent Handler
264
- */
265
- type EnvEventHandler = (event: EnvEvent) => void | Promise<void>;
266
- /**
267
- * EnvEvent 创建参数(部分属性,可选)
268
- *
269
- * 用于 pushEnvEvent 方法,允许传入部分属性,自动补全必填字段
270
- */
271
- interface EnvEventInput {
272
- /** 事件类型(必填) */
273
- type: string;
274
- /** 事件 ID(可选,自动生成) */
275
- id?: string;
276
- /** 时间戳(可选,自动生成) */
277
- timestamp?: number;
278
- /** 元信息(可选,自动创建) */
279
- metadata?: EnvEventMetadata;
280
- /** 事件负载(可选) */
281
- payload?: unknown;
282
- }
283
- /**
284
- * Action 类型
285
- */
286
- interface Action {
287
- /** Action 类型 */
288
- type: string;
289
- /** Action 参数 */
290
- params?: Record<string, unknown>;
291
- }
292
- /**
293
- * Tool Result
294
- */
295
- interface ToolResult {
296
- /** 是否成功 */
297
- success: boolean;
298
- /** 输出内容 */
299
- output: string | Record<string, unknown>;
300
- /** 错误信息 */
301
- error?: string;
302
- }
303
- /**
304
- * Context
305
- */
306
- interface Context {
307
- /** 会话 ID */
308
- sessionId?: string;
309
- /** 用户 ID */
310
- userId?: string;
311
- /** 工作目录 */
312
- workdir?: string;
313
- /** 中断信号 */
314
- abort?: AbortSignal;
315
- /** 元数据 */
316
- metadata?: Record<string, unknown>;
317
- }
318
- type AbortSignalType = AbortSignal;
319
- /**
320
- * Agent 执行上下文
321
- */
322
- interface AgentContext {
323
- /** 会话 ID */
324
- sessionId?: string;
325
- /** 消息 ID */
326
- messageId?: string;
327
- /** 中断信号 */
328
- abort?: AbortSignalType;
329
- /** 额外的上下文信息(会添加到 system prompt) */
330
- additionInfo?: string;
331
- /** 元数据 */
332
- metadata?: Record<string, unknown>;
333
- /** Agent 类型(用于选择 Behavior Spec) */
334
- agentType?: string;
335
- /** 使用的模型 */
336
- model?: string;
337
- /** 允许的工具列表(上下文级别,会覆盖 agent 配置) */
338
- allowedTools?: string[];
339
- /** 拒绝的工具列表(上下文级别,会覆盖 agent 配置) */
340
- deniedTools?: string[];
341
- /** 是否过滤 history 中的 tool 消息(上下文级别,会覆盖 agent 配置) */
342
- filterHistory?: boolean;
343
- }
344
- import { ZodType as ZodType2, ZodTypeDef } from "zod";
345
- /**
346
- * ConfigSource 类型
347
- */
348
- type ConfigSourceType = "memory" | "file" | "env" | "remote";
349
- /**
350
- * SourceRegistration - Source 注册配置
351
- */
352
- interface SourceRegistration {
353
- /** Source 类型 */
354
- type: ConfigSourceType;
355
- /** 相对路径(file 类型使用,基于 XDG_DATA_HOME) */
356
- relativePath?: string;
357
- /** 环境变量前缀(env 类型使用) */
358
- envPrefix?: string;
359
- /** 优先级,默认值:memory=0, file=10, env=20 */
360
- priority?: number;
361
- /** 是否可选(file 类型使用,文件不存在时不报错) */
362
- optional?: boolean;
363
- /** 是否启用文件监听(file 类型使用,默认 true) */
364
- watch?: boolean;
365
- }
366
- /**
367
- * KeyRegistration - 配置 Key 注册
368
- */
369
- interface KeyRegistration {
370
- /** 配置 Key(支持点号嵌套,如 "llm.provider") */
371
- key: string;
372
- /** 优先使用的 Source 列表(按优先级从低到高) */
373
- sources: ConfigSourceType[];
374
- /** 自定义优先级(覆盖默认优先级) */
375
- priority?: number;
376
- /** 默认值 */
377
- default?: unknown;
378
- }
379
- /**
380
- * ComponentRegistration - Component 注册配置
381
- */
382
- interface ComponentRegistration {
383
- /** Component 名称 */
384
- name: string;
385
- /** 声明需要的 Source */
386
- sources: SourceRegistration[];
387
- /** 声明需要的配置 Key */
388
- keys: KeyRegistration[];
389
- /** 配置 Schema(用于验证,可选) */
390
- schema?: ZodType2<unknown, ZodTypeDef, unknown>;
391
- /** 默认值 */
392
- defaults?: Record<string, unknown>;
393
- }
394
- /**
395
- * ConfigSource 接口
396
- */
397
- interface ConfigSource {
398
- readonly name: ConfigSourceType;
399
- readonly priority: number;
400
- read(key: string): unknown | undefined;
401
- write?(key: string, value: unknown): boolean;
402
- delete?(key: string): boolean;
403
- list(): Array<{
404
- key: string;
405
- value: unknown;
406
- }>;
407
- watch?(callback: (event: ConfigChangeEvent) => void): () => void;
408
- }
409
- /**
410
- * Config 变更事件
411
- */
412
- interface ConfigChangeEvent {
413
- type: "change" | "add" | "delete";
414
- key: string;
415
- oldValue: unknown;
416
- newValue: unknown;
417
- source: ConfigSourceType;
418
- timestamp: number;
419
- }
420
- /**
421
- * ConfigComponent 配置
422
- */
423
- interface ConfigComponentOptions {
424
- /** 持久化文件路径 */
425
- persistFile?: string;
426
- /** 防抖延迟(ms) */
427
- debounceMs?: number;
428
- /** 最大批量大小 */
429
- maxBatchSize?: number;
430
- }
431
- /**
432
- * ConfigComponent
433
- */
434
- declare class ConfigComponent extends BaseComponent {
435
- readonly name = "config";
436
- readonly version = "1.0.0";
437
- private memorySource;
438
- private sources;
439
- private componentSchemas;
440
- private componentPaths;
441
- private watchers;
442
- /** Source watch unsubscribe 函数 */
443
- private sourceUnwatchFns;
444
- private persistQueue;
445
- private persistFile?;
446
- /** Key 注册表:key -> KeyRegistration */
447
- private keyRegistry;
448
- /** Component 注册表:name -> ComponentRegistration */
449
- private componentRegistrations;
450
- /** 协议解析器 */
451
- private protocolResolver?;
452
- /** XDG_DATA_HOME 缓存(用于测试注入) */
453
- private __xdgDataHome?;
454
- /** Source 注册配置(延迟创建) */
455
- private pendingSources;
456
- /** Source 唯一标识缓存:type:relativePath -> true */
457
- private sourceKeys;
458
- /**
459
- * 获取 XDG_DATA_HOME(动态获取,支持运行时覆盖)
460
- */
461
- getXdgDataHome(): string;
462
- /**
463
- * 设置 XDG_DATA_HOME(用于测试)
464
- */
465
- setXdgDataHome(path: string): void;
466
- constructor(options?: ConfigComponentOptions);
467
- /**
468
- * 注册 Component Schema
469
- */
470
- register(schema: ComponentSchema): void;
471
- /**
472
- * 注销 Component
473
- */
474
- unregister(name: string): boolean;
475
- /**
476
- * 检查是否已注册
477
- */
478
- isRegistered(name: string): boolean;
479
- /**
480
- * 列出所有注册的 Component
481
- */
482
- listComponents(): string[];
483
- /**
484
- * 获取配置值(支持 xxx.yyy.zzz 嵌套访问)
485
- * 支持两种模式:
486
- * 1. 完整 key:直接查找,如 "component.key" -> 读取 "component.key"
487
- * 2. 嵌套对象:查找 component 对象后从中获取属性,如 "component.nested.deep"
488
- * -> 先找 "component.nested",再获取其 "deep" 属性
489
- */
490
- get(key: string): unknown;
491
- /**
492
- * 批量获取
493
- */
494
- getMany(keys: string[]): Record<string, unknown>;
495
- /**
496
- * 设置配置值(内存级别 + 异步持久化)
497
- */
498
- set(key: string, value: unknown): Promise<void>;
499
- /**
500
- * 批量设置
501
- */
502
- setMany(config: Record<string, unknown>): Promise<void>;
503
- /**
504
- * 获取 Component 的路径
505
- */
506
- getPath(component: string, subPath?: string): string;
507
- /**
508
- * 手动持久化
509
- */
510
- save(key?: string): Promise<void>;
511
- /**
512
- * 重置到默认值
513
- */
514
- reset(key: string): Promise<void>;
515
- /**
516
- * 监听配置变更
517
- */
518
- watch(pattern: string, callback: ComponentWatchCallback): () => void;
519
- /**
520
- * 添加配置源
521
- */
522
- addSource(source: ConfigSource): void;
523
- /**
524
- * 获取 Source 唯一标识
525
- */
526
- private getSourceKey;
527
- /**
528
- * 移除配置源
529
- */
530
- removeSource(name: ConfigSourceType): boolean;
531
- /**
532
- * 关闭所有配置源的 watcher(用于优雅退出)
533
- */
534
- unwatchAll(): void;
535
- /**
536
- * 获取配置源列表
537
- */
538
- getSources(): ConfigSource[];
539
- private getNestedValue;
540
- private notifyWatchers;
541
- private persistToFile;
542
- /**
543
- * 注册配置 Source
544
- *
545
- * Source 会在首次 load() 时被创建
546
- *
547
- * @example
548
- * config.registerSource({ type: "file", relativePath: "llm-config.jsonc" });
549
- * config.registerSource({ type: "env", envPrefix: "LLM" });
550
- */
551
- registerSource(registration: SourceRegistration): void;
552
- /**
553
- * 创建 Source 实例
554
- */
555
- private createSource;
556
- /**
557
- * 确保所有待创建的 Source 已被创建
558
- */
559
- private ensureSourcesCreated;
560
- /**
561
- * 注册配置 Key
562
- *
563
- * @example
564
- * config.registerKeys([
565
- * { key: "llm.provider", sources: ["file", "memory"], default: "openai" },
566
- * { key: "llm.model", sources: ["file"] },
567
- * ]);
568
- */
569
- registerKeys(keys: KeyRegistration[]): void;
570
- /**
571
- * 注册 Component(一次性注册 Source 和 Keys)
572
- *
573
- * @example
574
- * config.registerComponent({
575
- * name: "llm",
576
- * sources: [
577
- * { type: "file", relativePath: "llm-config.jsonc" },
578
- * { type: "env", envPrefix: "LLM" },
579
- * ],
580
- * keys: [
581
- * { key: "llm.provider", sources: ["file", "env", "memory"] },
582
- * ],
583
- * });
584
- */
585
- registerComponent(registration: ComponentRegistration): void;
586
- /**
587
- * 按需加载配置
588
- *
589
- * 从注册的 Source 加载已注册 Keys 的配置值到内存中
590
- *
591
- * @param componentName - 可选,指定要加载的 Component 名称
592
- *
593
- * @example
594
- * // 加载所有已注册的 Keys
595
- * await config.load();
596
- *
597
- * // 只加载指定 Component 的 Keys
598
- * await config.load("llm");
599
- */
600
- load(componentName?: string): Promise<void>;
601
- /**
602
- * 获取已注册的 Source 列表
603
- */
604
- getRegisteredSources(): ConfigSource[];
605
- }
606
- /**
607
- * 服务配置接口
608
- */
609
- interface ServiceConfig {
610
- /** 环境配置 */
611
- environment?: {
612
- name?: string;
613
- version?: string;
614
- };
615
- /** 组件配置映射 */
616
- components?: Record<string, ComponentConfigEntry>;
617
- }
618
- /**
619
- * 组件配置项
620
- */
621
- interface ComponentConfigEntry {
622
- /** 配置文件路径(可选) */
623
- configPath?: string;
624
- /** 环境变量前缀(可选) */
625
- envPrefix?: string;
626
- /** 直接配置对象(可选) */
627
- config?: Record<string, unknown>;
628
- /** 是否启用(可选,默认 true) */
629
- enabled?: boolean;
630
- }
631
- /**
632
- * 组件初始化选项(由 generateComponentOptions 生成)
633
- */
634
- interface GeneratedComponentOptions {
635
- /** ConfigComponent 实例 */
636
- configComponent: ConfigComponent;
637
- /** 配置文件路径 */
638
- configPath?: string;
639
- /** 环境变量前缀 */
640
- envPrefix?: string;
641
- /** 直接配置对象 */
642
- config?: Record<string, unknown>;
643
- /** 允许的其他属性 */
644
- [key: string]: unknown;
645
- }
646
- /**
647
- * Environment 接口
648
- *
649
- * 定义 Agent 运行时的核心能力接口。
650
- */
651
- interface Environment {
652
- /** 环境名称 */
653
- readonly name: string;
654
- /** 环境版本 */
655
- readonly version: string;
656
- /** 获取环境配置 */
657
- getConfig(): EnvironmentConfig;
658
- /**
659
- * 注册组件
660
- */
661
- registerComponent(component: Component): void;
662
- /**
663
- * 注销组件
664
- */
665
- unregisterComponent(name: string): void;
666
- /**
667
- * 获取组件
668
- */
669
- getComponent<T extends Component>(name: string): T | undefined;
670
- /**
671
- * 列出所有组件
672
- */
673
- listComponents(): Component[];
674
- /**
675
- * 处理自然语言查询(核心入口)
676
- *
677
- * @param query 用户查询文本
678
- * @param context 执行上下文(可选)
679
- * @returns 完整的文本响应
680
- */
681
- handle_query(query: string, context?: AgentContext): Promise<string>;
682
- /**
683
- * 处理动作
684
- */
685
- handle_action(action: Action, context: Context): Promise<ToolResult>;
686
- /**
687
- * 订阅 EnvEvent(返回取消订阅函数)
688
- */
689
- subscribe(handler: EnvEventHandler): () => void;
690
- /**
691
- * 订阅指定类型事件
692
- */
693
- subscribeTo(eventType: string | string[], handler: EnvEventHandler): () => void;
694
- /**
695
- * 订阅所有事件(通配符)
696
- */
697
- subscribeAll(handler: EnvEventHandler): () => void;
698
- /**
699
- * 推送事件
700
- *
701
- * @param event EnvEvent 或 EnvEventInput(部分属性)
702
- */
703
- pushEnvEvent(event: EnvEvent | EnvEventInput): void;
704
- /**
705
- * 从配置文件加载服务配置
706
- *
707
- * @param configPath 配置文件路径(基于 XDG_DATA_HOME)
708
- * @returns 解析后的服务配置对象
709
- */
710
- loadServiceConfig(configPath: string): Promise<ServiceConfig>;
711
- /**
712
- * 生成组件初始化选项
713
- *
714
- * 根据组件配置项生成可用于初始化的选项对象。
715
- *
716
- * @param componentName 组件名称
717
- * @param configEntry 组件配置项
718
- * @returns 生成的组件初始化选项
719
- */
720
- generateComponentOptions(componentName: string, configEntry: ComponentConfigEntry): GeneratedComponentOptions;
721
- /**
722
- * 注册组件并用配置初始化
723
- *
724
- * 便捷方法:注册组件并通过 ConfigComponent 初始化。
725
- *
726
- * @param component 要注册的组件实例
727
- * @param configEntry 组件配置项
728
- */
729
- registerComponentWithConfig(component: Component, configEntry: ComponentConfigEntry): Promise<void>;
730
- /**
731
- * 从配置文件初始化整个环境
732
- *
733
- * 加载服务配置,注册并初始化所有配置的组件。
734
- *
735
- * @param configPath 配置文件路径(基于 XDG_DATA_HOME)
736
- */
737
- initFromConfig(configPath: string): Promise<void>;
738
- }
739
- /**
740
- * Component 状态
741
- */
742
- type ComponentStatus = "created" | "initializing" | "running" | "stopping" | "stopped" | "error";
743
- /**
744
- * Component 配置
745
- */
746
- interface ComponentConfig {
747
- name: string;
748
- version: string;
749
- enabled: boolean;
750
- options?: Record<string, unknown>;
751
- /**
752
- * Environment 实例(可选)
753
- *
754
- * 推荐在 init 时接收 env 实例,以便:
755
- * - 通过 env.getComponent() 获取其他组件
756
- * - 通过 env.pushEnvEvent() 发布事件
757
- * - 通过 env.handle_query() 处理查询
758
- *
759
- * 如果未提供,部分 Component 仍可正常工作(如测试场景)
760
- *
761
- * @example
762
- * ```typescript
763
- * async onInit(): Promise<void> {
764
- * if (this.env) {
765
- * const configComp = this.env.getComponent("config");
766
- * }
767
- * }
768
- * ```
769
- */
770
- env?: Environment;
771
- }
772
- /**
773
- * Component 路径声明
774
- */
775
- interface ComponentPaths {
776
- base: "config" | "state" | "data" | "cache";
777
- subPath: string;
778
- isDirectory: boolean;
779
- }
780
- /**
781
- * Component Schema(注册配置)
782
- */
783
- interface ComponentSchema {
784
- /** Component 名称 */
785
- name: string;
786
- /** 配置 Schema(Zod) */
787
- schema: ZodType3<unknown, ZodTypeDef2, unknown>;
788
- /** 默认值(从 Schema 提取) */
789
- defaults: Record<string, unknown>;
790
- /** 路径声明 */
791
- paths?: Record<string, ComponentPaths>;
792
- /** 元信息 */
793
- metadata?: {
794
- description?: string;
795
- version?: string;
796
- author?: string;
797
- };
798
- }
799
- /**
800
- * Component 配置变更事件
801
- */
802
- interface ComponentConfigChangeEvent {
803
- /** Component 名称 */
804
- component: string;
805
- /** 变更的配置键 */
806
- key: string;
807
- /** 旧值 */
808
- oldValue: unknown;
809
- /** 新值 */
810
- newValue: unknown;
811
- /** 是否持久化 */
812
- persisted: boolean;
813
- /** 时间戳 */
814
- timestamp: number;
815
- }
816
- /**
817
- * Component 配置监听回调
818
- */
819
- type ComponentWatchCallback = (event: ComponentConfigChangeEvent) => void | Promise<void>;
820
- /**
821
- * Component 基类接口
822
- */
823
- interface Component {
824
- /** Component 名称 */
825
- readonly name: string;
826
- /** Component 版本 */
827
- readonly version: string;
828
- /** 获取状态 */
829
- getStatus(): ComponentStatus;
830
- /** 获取配置 */
831
- getConfig(): ComponentConfig;
832
- /** 初始化 */
833
- init(config: ComponentConfig): Promise<void>;
834
- /** 启动 */
835
- start(): Promise<void>;
836
- /** 停止 */
837
- stop(): Promise<void>;
838
- }
839
- /**
840
- * Component 基类实现
841
- */
842
- declare abstract class BaseComponent implements Component {
843
- abstract readonly name: string;
844
- abstract readonly version: string;
845
- protected _status: ComponentStatus;
846
- protected _enabled: boolean;
847
- protected env: Environment;
848
- /** Hook 管理器 - 子类初始化时由构造函数设置 */
849
- readonly hookManager: HookManager;
850
- constructor();
851
- getStatus(): ComponentStatus;
852
- getConfig(): ComponentConfig;
853
- /**
854
- * 检查 Environment 是否已初始化
855
- */
856
- protected isEnvInitialized(): boolean;
857
- protected setStatus(status: ComponentStatus): void;
858
- /**
859
- * 获取 Environment 实例
860
- */
861
- protected getEnv(): Environment;
862
- init(config?: ComponentConfig): Promise<void>;
863
- start(): Promise<void>;
864
- stop(): Promise<void>;
865
- /**
866
- * 子类可覆盖的钩子方法
867
- */
868
- protected onInit(): Promise<void>;
869
- protected onStart(): Promise<void>;
870
- protected onStop(): Promise<void>;
871
- /**
872
- * 注册 Hook
873
- *
874
- * @param hookPoint Hook 点名称
875
- * @param hook Hook 实例
876
- */
877
- protected registerHook<T = unknown>(hookPoint: string, hook: Hook<T>): void;
878
- /**
879
- * 便捷方法:快速注册 Hook
880
- */
881
- protected addHook<T = unknown>(hookPoint: string, name: string, fn: HookFn<T>, priority?: number): void;
882
- /**
883
- * 便捷方法:按名称取消注册 Hook
884
- */
885
- protected removeHook(hookPoint: string, name: string): boolean;
886
- /**
887
- * 执行 Hook
888
- */
889
- protected executeHooks<T = unknown>(hookPoint: string, data: T, metadata?: Record<string, unknown>): Promise<void>;
890
- /**
891
- * 获取 ConfigComponent 实例
892
- *
893
- * 子类可使用此方法获取配置组件,支持热更新
894
- */
895
- protected getConfigComponent(): {
896
- get(key: string): unknown;
897
- } | undefined;
898
- /**
899
- * 动态获取运行时配置值
900
- *
901
- * 优先从 ConfigComponent 获取(支持热更新),否则返回默认值
902
- * 适用于运行时可能变化的配置(如 API Keys、模型参数)
903
- *
904
- * @param key 配置键(支持点号分隔的路径,如 "llm.temperature")
905
- * @param defaultValue 默认值
906
- * @returns 配置值或默认值
907
- *
908
- * @example
909
- * ```typescript
910
- * // 获取 LLM 温度配置(可能支持热更新)
911
- * const temperature = this.getRuntimeConfig("llm.temperature", 0.7);
912
- *
913
- * // 获取 API Key
914
- * const apiKey = this.getRuntimeConfig<string>("llm.providers.openai.apiKey");
915
- * ```
916
- */
917
- protected getRuntimeConfig<T>(key: string, defaultValue: T): T;
918
- }
919
- /**
920
- * TaskPlugin 配置
921
- */
922
- interface TaskPluginConfig {
923
- /** 是否启用 */
924
- enabled?: boolean;
925
- /** 优先级 */
926
- priority?: number;
927
- }
928
- /**
929
- * TaskPlugin Hook 定义
930
- */
931
- interface TaskPluginHook {
932
- /** Hook 点 */
933
- point: string;
934
- /** 优先级(数字越大越先执行)*/
935
- priority?: number;
936
- }
937
- /**
938
- * TaskPlugin 基类
939
- */
940
- declare abstract class TaskPlugin {
941
- abstract readonly name: string;
942
- abstract readonly hooks: TaskPluginHook[];
943
- protected config: TaskPluginConfig;
944
- constructor(config?: TaskPluginConfig);
945
- /**
946
- * 设置依赖组件(可选实现)
947
- */
948
- setComponents?(llmComponent: unknown, taskComponent: unknown): void;
949
- /**
950
- * 获取 Hook 点列表
951
- */
952
- getHookPoints(): string[];
953
- /**
954
- * 获取指定 Hook 点的优先级
955
- */
956
- getPriorityForHook(hookPoint: string): number;
957
- /**
958
- * 检查是否启用
959
- */
960
- isEnabled(): boolean;
961
- /**
962
- * 设置启用状态
963
- */
964
- setEnabled(enabled: boolean): void;
965
- }
966
- import { z as z7 } from "zod";
967
- /**
968
- * Task status enum
969
- */
970
- declare const TaskStatusEnum: unknown;
971
- type TaskStatus = z7.infer<typeof TaskStatusEnum>;
972
- /**
973
- * Task priority enum
974
- */
975
- declare const TaskPriorityEnum: unknown;
976
- type TaskPriority = z7.infer<typeof TaskPriorityEnum>;
977
- /**
978
- * Action type for task operations
979
- */
980
- declare const ActionTypeEnum: unknown;
981
- type ActionType = z7.infer<typeof ActionTypeEnum>;
982
- /**
983
- * Task entity
984
- */
985
- interface Task {
986
- id: number;
987
- title: string;
988
- description: string;
989
- status: TaskStatus;
990
- priority: TaskPriority;
991
- progress: number;
992
- current_status: string;
993
- goals_and_expected_deliverables: string;
994
- parent_task_id?: number;
995
- createdAt: string;
996
- updatedAt: string;
997
- due_date?: string;
998
- tags?: string[];
999
- /** Project root path for task positioning */
1000
- project_path: string;
1001
- /** JSON string with time-space positioning info (worktree, branch, etc.) */
1002
- context: string;
1003
- }
1004
- /**
1005
- * TaskOperation entity
1006
- *
1007
- * 记录任务的操作历史,每个操作关联到一个 sessionId
1008
- */
1009
- interface TaskOperation {
1010
- id: number;
1011
- taskId: number;
1012
- sessionId: string;
1013
- actionType: ActionType;
1014
- actionTitle: string;
1015
- actionDescription: string;
1016
- timestamp: string;
1017
- mdPath?: string;
1018
- }
1019
- /**
1020
- * TaskTag entity
1021
- *
1022
- * Tag 池中的单个 Tag
1023
- */
1024
- interface TaskTag {
1025
- id: number;
1026
- name: string;
1027
- createdAt: string;
1028
- taskCount: number;
1029
- }
1030
- declare const TaskConfigSchema: unknown;
1031
- type TaskConfig = z7.infer<typeof TaskConfigSchema>;
1032
- interface CreateTaskOptions {
1033
- title: string;
1034
- description?: string;
1035
- priority?: TaskPriority;
1036
- parent_task_id?: number;
1037
- goals_and_expected_deliverables?: string;
1038
- due_date?: string;
1039
- tags?: string[];
1040
- sessionId: string;
1041
- /** Project root path for task positioning. Use 'unknown' if unknown. */
1042
- project_path: string;
1043
- /**
1044
- * JSON string with time-space positioning info.
1045
- * - For coding tasks: include worktree_path, branch, type
1046
- * - For other tasks: use '{}' or '{"type":"unknown"}'
1047
- * Must be a valid JSON string.
1048
- */
1049
- context: string;
1050
- }
1051
- interface UpdateTaskOptions {
1052
- title?: string;
1053
- description?: string;
1054
- status?: TaskStatus;
1055
- priority?: TaskPriority;
1056
- progress?: number;
1057
- current_status?: string;
1058
- goals_and_expected_deliverables?: string;
1059
- due_date?: string;
1060
- tags?: string[];
1061
- /** 项目路径,标识任务所属的项目 */
1062
- project_path?: string;
1063
- /** 任务上下文信息,用于存储额外上下文 */
1064
- context?: string;
1065
- }
1066
- interface ListTasksOptions {
1067
- status?: TaskStatus;
1068
- priority?: TaskPriority;
1069
- parent_task_id?: number;
1070
- limit?: number;
1071
- offset?: number;
1072
- }
1073
- interface CreateOperationOptions {
1074
- taskId: number;
1075
- sessionId: string;
1076
- actionType: ActionType;
1077
- actionTitle: string;
1078
- actionDescription?: string;
1079
- mdPath?: string;
1080
- }
1081
- interface ListOperationsOptions {
1082
- taskId: number;
1083
- actionType?: ActionType;
1084
- limit?: number;
1085
- offset?: number;
1086
- }
1087
- interface ListTagsOptions {
1088
- limit?: number;
1089
- offset?: number;
1090
- orderBy?: "count" | "name" | "created_at";
1091
- }
1092
- interface SearchTagsOptions {
1093
- query: string;
1094
- limit?: number;
1095
- }
1096
- interface TagService {
1097
- /**
1098
- * 创建 Tag(如果已存在则返回现有 Tag)
1099
- */
1100
- createTag(name: string): Promise<TaskTag>;
1101
- /**
1102
- * 获取 Tag by ID
1103
- */
1104
- getTag(id: number): Promise<TaskTag | undefined>;
1105
- /**
1106
- * 获取 Tag by Name
1107
- */
1108
- getTagByName(name: string): Promise<TaskTag | undefined>;
1109
- /**
1110
- * 列出所有 Tag
1111
- */
1112
- listTags(options?: ListTagsOptions): Promise<TaskTag[]>;
1113
- /**
1114
- * 搜索 Tag(模糊匹配)
1115
- */
1116
- searchTags(options: SearchTagsOptions): Promise<TaskTag[]>;
1117
- /**
1118
- * 删除 Tag(同时删除所有关联)
1119
- */
1120
- deleteTag(id: number): Promise<boolean>;
1121
- /**
1122
- * 给 Task 添加 Tags
1123
- */
1124
- addTagsToTask(taskId: number, tagIds: number[]): Promise<void>;
1125
- /**
1126
- * 从 Task 移除 Tags
1127
- */
1128
- removeTagsFromTask(taskId: number, tagIds: number[]): Promise<void>;
1129
- /**
1130
- * 获取 Task 的所有 Tags
1131
- */
1132
- getTagsForTask(taskId: number): Promise<TaskTag[]>;
1133
- /**
1134
- * 根据 Tag 名称获取关联的 Task IDs
1135
- */
1136
- getTaskIdsByTags(tagNames: string[]): Promise<number[]>;
1137
- /**
1138
- * 根据关键词列表搜索 Task(检索 tags、description、goals、operations)
1139
- * 这是新的核心检索方法
1140
- */
1141
- searchTasksByKeywords(keywords: string[], options?: {
1142
- limit?: number;
1143
- excludeTaskId?: number;
1144
- }): Promise<Task[]>;
1145
- /**
1146
- * 根据关键词查找类似 Task(排除自身,按相关性排序)
1147
- * 这是新的核心检索方法
1148
- */
1149
- findSimilarTasksByKeywords(keywords: string[], options?: {
1150
- limit?: number;
1151
- excludeTaskId?: number;
1152
- }): Promise<Task[]>;
1153
- /**
1154
- * 同步 Tags 到 Task(根据 tag 名称列表)
1155
- * - 查找或创建 Tag
1156
- * - 更新关联关系
1157
- * - 更新 task.tags JSON 字段
1158
- */
1159
- syncTagsToTask(taskId: number, tagNames: string[]): Promise<void>;
1160
- /**
1161
- * 查找类似 Task(基于 Tag 匹配度)- 原始实现,保留兼容
1162
- * @deprecated 使用 findSimilarTasksByKeywords 代替
1163
- */
1164
- findSimilarTasks(taskId: number, limit?: number): Promise<Task[]>;
1165
- /**
1166
- * 根据关键词搜索 Task(标题 + 描述)- 原始实现,保留兼容
1167
- * @deprecated 使用 searchTasksByKeywords 代替
1168
- */
1169
- searchTasks(query: string, limit?: number): Promise<Task[]>;
1170
- }
1171
- interface TaskStore {
1172
- createTask(options: CreateTaskOptions): Promise<Task>;
1173
- getTask(id: number): Promise<Task | undefined>;
1174
- updateTask(id: number, options: UpdateTaskOptions): Promise<Task | undefined>;
1175
- deleteTask(id: number): Promise<boolean>;
1176
- listTasks(options?: ListTasksOptions): Promise<Task[]>;
1177
- createOperation(options: CreateOperationOptions): Promise<TaskOperation>;
1178
- getOperation(id: number): Promise<TaskOperation | undefined>;
1179
- updateOperation(id: number, updates: {
1180
- actionTitle?: string;
1181
- actionDescription?: string;
1182
- }): Promise<TaskOperation | undefined>;
1183
- deleteOperation(id: number): Promise<boolean>;
1184
- listOperations(options: ListOperationsOptions): Promise<TaskOperation[]>;
1185
- createTag(name: string): Promise<TaskTag>;
1186
- getTag(id: number): Promise<TaskTag | undefined>;
1187
- getTagByName(name: string): Promise<TaskTag | undefined>;
1188
- listTags(options?: ListTagsOptions): Promise<TaskTag[]>;
1189
- searchTags(options: SearchTagsOptions): Promise<TaskTag[]>;
1190
- deleteTag(id: number): Promise<boolean>;
1191
- addTagsToTask(taskId: number, tagIds: number[]): Promise<void>;
1192
- removeTagsFromTask(taskId: number, tagIds: number[]): Promise<void>;
1193
- getTagsForTask(taskId: number): Promise<TaskTag[]>;
1194
- getTaskIdsByTags(tagNames: string[]): Promise<number[]>;
1195
- updateTaskTags(taskId: number, tagNames: string[]): Promise<void>;
1196
- /** Search tasks by keywords (tags, description, goals, operations) */
1197
- searchTasksByKeywords(keywords: string[], options?: {
1198
- limit?: number;
1199
- excludeTaskId?: number;
1200
- }): Promise<Task[]>;
1201
- /** Find similar tasks using new keywords search */
1202
- findSimilarTasksByKeywords(keywords: string[], options?: {
1203
- limit?: number;
1204
- excludeTaskId?: number;
1205
- }): Promise<Task[]>;
1206
- findSimilarTasks(taskId: number, limit?: number): Promise<Task[]>;
1207
- searchTasks(query: string, limit?: number): Promise<Task[]>;
1208
- close(): void;
1209
- }
1210
- /**
1211
- * SQLite-based Task Store
1212
- *
1213
- * 参考 Session SQLiteStore 实现模式:
1214
- * - 使用 bun:sqlite 内置模块
1215
- * - 内存缓存提高性能
1216
- * - 默认路径:~/.local/share/roy-agent/tasks.db
1217
- */
1218
- declare class SQLiteTaskStore implements TaskStore {
1219
- private db;
1220
- private dbPath;
1221
- private initialized;
1222
- private tasksCache;
1223
- private operationsCache;
1224
- constructor(dbPath?: string);
1225
- private initialize;
1226
- createTask(options: CreateTaskOptions): Promise<Task>;
1227
- getTask(id: number): Promise<Task | undefined>;
1228
- updateTask(id: number, options: UpdateTaskOptions): Promise<Task | undefined>;
1229
- deleteTask(id: number): Promise<boolean>;
1230
- listTasks(options?: ListTasksOptions): Promise<Task[]>;
1231
- createOperation(options: CreateOperationOptions): Promise<TaskOperation>;
1232
- getOperation(id: number): Promise<TaskOperation | undefined>;
1233
- updateOperation(id: number, updates: {
1234
- actionTitle?: string;
1235
- actionDescription?: string;
1236
- }): Promise<TaskOperation | undefined>;
1237
- deleteOperation(id: number): Promise<boolean>;
1238
- listOperations(options: ListOperationsOptions): Promise<TaskOperation[]>;
1239
- private rowToTask;
1240
- private rowToOperation;
1241
- createTag(name: string): Promise<TaskTag>;
1242
- getTag(id: number): Promise<TaskTag | undefined>;
1243
- getTagByName(name: string): Promise<TaskTag | undefined>;
1244
- listTags(options?: ListTagsOptions): Promise<TaskTag[]>;
1245
- searchTags(options: SearchTagsOptions): Promise<TaskTag[]>;
1246
- deleteTag(id: number): Promise<boolean>;
1247
- addTagsToTask(taskId: number, tagIds: number[]): Promise<void>;
1248
- removeTagsFromTask(taskId: number, tagIds: number[]): Promise<void>;
1249
- getTagsForTask(taskId: number): Promise<TaskTag[]>;
1250
- getTaskIdsByTags(tagNames: string[]): Promise<number[]>;
1251
- updateTaskTags(taskId: number, tagNames: string[]): Promise<void>;
1252
- /**
1253
- * Search tasks by keywords list
1254
- * Searches in: tags (JSON), description, goals_and_expected_deliverables, operations
1255
- */
1256
- searchTasksByKeywords(keywords: string[], options?: {
1257
- limit?: number;
1258
- excludeTaskId?: number;
1259
- }): Promise<Task[]>;
1260
- /**
1261
- * Find similar tasks by keywords
1262
- * Excludes the target task and sorts by relevance
1263
- * Default limit is 5 to keep prompt concise
1264
- */
1265
- findSimilarTasksByKeywords(keywords: string[], options?: {
1266
- limit?: number;
1267
- excludeTaskId?: number;
1268
- }): Promise<Task[]>;
1269
- findSimilarTasks(taskId: number, limit?: number): Promise<Task[]>;
1270
- searchTasks(query: string, limit?: number): Promise<Task[]>;
1271
- private rowToTag;
1272
- private syncTaskTagsJson;
1273
- close(): Promise<void>;
1274
- }
1275
- /**
1276
- * @fileoverview Task Entity Event Types
1277
- *
1278
- * 定义 TaskComponent 相关的 EnvEvent 类型
1279
- */
1280
- /**
1281
- * Task Entity 事件类型枚举
1282
- */
1283
- declare const TaskEntityEventTypes: {
1284
- /** Task 创建 */
1285
- readonly CREATED: "task.created";
1286
- /** Task 更新 */
1287
- readonly UPDATED: "task.updated";
1288
- /** Task 完成 */
1289
- readonly COMPLETED: "task.completed";
1290
- /** Task 删除 */
1291
- readonly DELETED: "task.deleted";
1292
- /** Operation 记录添加 */
1293
- readonly OPERATION_ADDED: "task.operation_added";
1294
- /** Task 被委托 */
1295
- readonly DELEGATED: "task.delegated";
1296
- };
1297
- type TaskEntityEventType = (typeof TaskEntityEventTypes)[keyof typeof TaskEntityEventTypes];
1298
- /**
1299
- * task.created 事件负载
1300
- */
1301
- interface TaskCreatedPayload {
1302
- task: Task;
1303
- sessionId: string;
1304
- }
1305
- /**
1306
- * task.updated 事件负载
1307
- */
1308
- interface TaskUpdatedPayload {
1309
- task: Task;
1310
- changes: Partial<Task>;
1311
- sessionId: string;
1312
- }
1313
- /**
1314
- * task.completed 事件负载
1315
- */
1316
- interface TaskCompletedPayload {
1317
- task: Task;
1318
- sessionId: string;
1319
- }
1320
- /**
1321
- * task.deleted 事件负载
1322
- */
1323
- interface TaskDeletedPayload {
1324
- taskId: number;
1325
- sessionId: string;
1326
- }
1327
- /**
1328
- * task.operation_added 事件负载
1329
- */
1330
- interface TaskOperationAddedPayload {
1331
- operation: TaskOperation;
1332
- taskId: number;
1333
- }
1334
- /**
1335
- * task.delegated 事件负载
1336
- */
1337
- interface TaskDelegatedPayload {
1338
- taskId: number;
1339
- backgroundTaskId: string;
1340
- subSessionId: string;
1341
- parentSessionId: string;
1342
- description: string;
1343
- subagentType: string;
1344
- }
1345
- /**
1346
- * task.background.started 事件负载
1347
- */
1348
- interface BackgroundTaskStartedPayload {
1349
- taskId: string;
1350
- subSessionId: string;
1351
- parentSessionId: string;
1352
- description: string;
1353
- subagentType: string;
1354
- associatedTaskId?: number;
1355
- }
1356
- /**
1357
- * task.background.progress 事件负载
1358
- */
1359
- interface BackgroundTaskProgressPayload {
1360
- taskId: string;
1361
- subSessionId: string;
1362
- parentSessionId: string;
1363
- status: string;
1364
- progress?: number;
1365
- progressMessage?: string;
1366
- description?: string;
1367
- subagentType?: string;
1368
- }
1369
- /**
1370
- * task.background.completed/failed/timeout/stopped 事件负载
1371
- */
1372
- interface BackgroundTaskCompletedPayload {
1373
- taskId: string;
1374
- subSessionId: string;
1375
- parentSessionId: string;
1376
- status: "completed" | "failed" | "timeout" | "stopped";
1377
- result?: string;
1378
- error?: string;
1379
- executionTimeMs: number;
1380
- associatedTaskId?: number;
1381
- description?: string;
1382
- subagentType?: string;
1383
- }
1384
- /**
1385
- * 所有 Task Entity 事件负载的联合类型
1386
- */
1387
- type TaskEntityEventPayload = TaskCreatedPayload | TaskUpdatedPayload | TaskCompletedPayload | TaskDeletedPayload | TaskOperationAddedPayload | TaskDelegatedPayload;
1388
- /**
1389
- * 所有 Background Task 事件负载的联合类型
1390
- */
1391
- type BackgroundTaskEventPayload = BackgroundTaskStartedPayload | BackgroundTaskProgressPayload | BackgroundTaskCompletedPayload;
1392
- /**
1393
- * TaskComponent 配置选项(通过 options 传递)
1394
- *
1395
- * 配置加载顺序(优先级从低到高):
1396
- * 1. File - 配置文件(通过 configPath 指定)
1397
- * 2. Env - 环境变量(通过 envPrefix 配置前缀)
1398
- * 3. Object - 直接传入的 config 对象(最高优先级)
1399
- */
1400
- interface TaskComponentOptions {
1401
- /** ConfigComponent 实例(必填) */
1402
- configComponent: ConfigComponent;
1403
- /** 配置文件相对路径(可选,基于 XDG_DATA_HOME) */
1404
- configPath?: string;
1405
- /** 环境变量前缀(可选,默认 "TASK") */
1406
- envPrefix?: string;
1407
- /** 直接传入的配置对象(可选,优先级最高) */
1408
- config?: Partial<TaskConfig>;
1409
- }
1410
- declare class TaskComponent extends BaseComponent {
1411
- name: string;
1412
- version: string;
1413
- private store;
1414
- private config?;
1415
- private toolComponent?;
1416
- private backgroundTaskManager?;
1417
- private configComponent?;
1418
- private tagService;
1419
- private plugins;
1420
- /**
1421
- * 发布 EnvEvent
1422
- */
1423
- private publishEvent;
1424
- constructor();
1425
- /**
1426
- * Initialize the component
1427
- *
1428
- * 配置加载优先级(从高到低):
1429
- * 1. Object - 直接传入的 config 对象
1430
- * 2. Env - 环境变量(通过 envPrefix 配置前缀)
1431
- * 3. File - 配置文件(通过 configPath 指定)
1432
- */
1433
- init(config?: ComponentConfig): Promise<void>;
1434
- /**
1435
- * 注册配置到 ConfigComponent
1436
- *
1437
- * 配置加载顺序(优先级从低到高):
1438
- * 1. Defaults - 默认值(最低)
1439
- * 2. FileSource - 从配置文件加载
1440
- * 3. EnvSource - 从环境变量加载
1441
- * 4. config 对象 - 直接传入的配置(最高)
1442
- */
1443
- private registerConfig;
1444
- /**
1445
- * 根据配置初始化 store
1446
- */
1447
- private initStore;
1448
- /**
1449
- * 将配置对象展平为点号路径
1450
- */
1451
- private flattenConfig;
1452
- /**
1453
- * 注册配置热更新监听
1454
- */
1455
- private registerConfigWatcher;
1456
- /**
1457
- * 处理配置变更
1458
- */
1459
- protected onConfigChange(event: {
1460
- key: string;
1461
- oldValue?: unknown;
1462
- newValue?: unknown;
1463
- }): void;
1464
- /** 配置变更 watcher 清理函数 */
1465
- private configWatcher?;
1466
- /**
1467
- * Start the component - register tools
1468
- */
1469
- start(): Promise<void>;
1470
- /**
1471
- * Stop the component
1472
- */
1473
- stop(): Promise<void>;
1474
- /**
1475
- * Register task tools to ToolComponent
1476
- */
1477
- private registerTools;
1478
- /**
1479
- * 执行 Hook
1480
- */
1481
- private executeHook;
1482
- /**
1483
- * Create a new task
1484
- */
1485
- createTask(options: CreateTaskOptions): Promise<Task>;
1486
- /**
1487
- * Get task by ID
1488
- */
1489
- getTask(id: number): Promise<Task | undefined>;
1490
- /**
1491
- * Get task with operations
1492
- */
1493
- getTaskWithOperations(id: number): Promise<{
1494
- task: Task;
1495
- operations: TaskOperation[];
1496
- } | undefined>;
1497
- /**
1498
- * Update task
1499
- */
1500
- updateTask(id: number, options: UpdateTaskOptions): Promise<Task | undefined>;
1501
- /**
1502
- * Delete task
1503
- */
1504
- deleteTask(id: number): Promise<boolean>;
1505
- /**
1506
- * List tasks
1507
- */
1508
- listTasks(options?: ListTasksOptions): Promise<Task[]>;
1509
- /**
1510
- * Complete task
1511
- */
1512
- completeTask(id: number, sessionId: string): Promise<Task | undefined>;
1513
- /**
1514
- * Create operation record
1515
- */
1516
- createOperation(options: CreateOperationOptions): Promise<TaskOperation>;
1517
- /**
1518
- * Get operation by ID
1519
- */
1520
- getOperation(id: number): Promise<TaskOperation | undefined>;
1521
- /**
1522
- * Update operation
1523
- */
1524
- updateOperation(id: number, updates: {
1525
- actionTitle?: string;
1526
- actionDescription?: string;
1527
- }): Promise<TaskOperation | undefined>;
1528
- /**
1529
- * Delete operation
1530
- */
1531
- deleteOperation(id: number): Promise<boolean>;
1532
- /**
1533
- * List operations for a task
1534
- */
1535
- listOperations(options: ListOperationsOptions): Promise<TaskOperation[]>;
1536
- /**
1537
- * 获取 TagService
1538
- */
1539
- getTagService(): TagService;
1540
- /**
1541
- * 注册 Plugin
1542
- */
1543
- registerPlugin(plugin: TaskPlugin): void;
1544
- /**
1545
- * 注销 Plugin
1546
- */
1547
- unregisterPlugin(name: string): boolean;
1548
- /**
1549
- * 获取所有注册的 Plugin
1550
- */
1551
- listPlugins(): TaskPlugin[];
1552
- }
1553
- export { UpdateTaskOptions, TaskUpdatedPayload, TaskTag, TaskStore, TaskStatusEnum, TaskStatus, TaskPriorityEnum, TaskPriority, TaskOperationAddedPayload, TaskOperation, TaskEntityEventTypes, TaskEntityEventType, TaskEntityEventPayload, TaskDeletedPayload, TaskDelegatedPayload, TaskCreatedPayload, TaskConfigSchema, TaskConfig, TaskComponentOptions, TaskComponent, TaskCompletedPayload, Task, SQLiteTaskStore, ListTasksOptions, ListOperationsOptions, CreateTaskOptions, CreateOperationOptions, BackgroundTaskStartedPayload, BackgroundTaskProgressPayload, BackgroundTaskEventPayload, BackgroundTaskCompletedPayload, ActionTypeEnum, ActionType };