@winspan/claude-forge 0.5.2 → 0.6.0

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 (182) hide show
  1. package/README.md +3 -3
  2. package/dist/ai-gateway/index.d.ts +26 -0
  3. package/dist/ai-gateway/index.d.ts.map +1 -0
  4. package/dist/ai-gateway/index.js +67 -0
  5. package/dist/ai-gateway/index.js.map +1 -0
  6. package/dist/ai-gateway/model-selector.d.ts +6 -0
  7. package/dist/ai-gateway/model-selector.d.ts.map +1 -0
  8. package/dist/ai-gateway/model-selector.js +36 -0
  9. package/dist/ai-gateway/model-selector.js.map +1 -0
  10. package/dist/ai-gateway/rate-limiter.d.ts +20 -0
  11. package/dist/ai-gateway/rate-limiter.d.ts.map +1 -0
  12. package/dist/ai-gateway/rate-limiter.js +45 -0
  13. package/dist/ai-gateway/rate-limiter.js.map +1 -0
  14. package/dist/ai-gateway/response-cache.d.ts +17 -0
  15. package/dist/ai-gateway/response-cache.d.ts.map +1 -0
  16. package/dist/ai-gateway/response-cache.js +44 -0
  17. package/dist/ai-gateway/response-cache.js.map +1 -0
  18. package/dist/ai-provider/types.d.ts +2 -0
  19. package/dist/ai-provider/types.d.ts.map +1 -1
  20. package/dist/ai-provider/types.js.map +1 -1
  21. package/dist/daemon/handlers/context-builder.d.ts +55 -0
  22. package/dist/daemon/handlers/context-builder.d.ts.map +1 -0
  23. package/dist/daemon/handlers/context-builder.js +429 -0
  24. package/dist/daemon/handlers/context-builder.js.map +1 -0
  25. package/dist/daemon/handlers/orchestration-context.d.ts +37 -0
  26. package/dist/daemon/handlers/orchestration-context.d.ts.map +1 -0
  27. package/dist/daemon/handlers/orchestration-context.js +2 -0
  28. package/dist/daemon/handlers/orchestration-context.js.map +1 -0
  29. package/dist/daemon/handlers/session-cleanup.js +5 -5
  30. package/dist/daemon/handlers/session-cleanup.js.map +1 -1
  31. package/dist/daemon/handlers/stages/01-failure-signal.d.ts +8 -0
  32. package/dist/daemon/handlers/stages/01-failure-signal.d.ts.map +1 -0
  33. package/dist/daemon/handlers/stages/01-failure-signal.js +39 -0
  34. package/dist/daemon/handlers/stages/01-failure-signal.js.map +1 -0
  35. package/dist/daemon/handlers/stages/02-active-intervention.d.ts +8 -0
  36. package/dist/daemon/handlers/stages/02-active-intervention.d.ts.map +1 -0
  37. package/dist/daemon/handlers/stages/02-active-intervention.js +27 -0
  38. package/dist/daemon/handlers/stages/02-active-intervention.js.map +1 -0
  39. package/dist/daemon/handlers/stages/03-init-prompt.d.ts +8 -0
  40. package/dist/daemon/handlers/stages/03-init-prompt.d.ts.map +1 -0
  41. package/dist/daemon/handlers/stages/03-init-prompt.js +24 -0
  42. package/dist/daemon/handlers/stages/03-init-prompt.js.map +1 -0
  43. package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts +8 -0
  44. package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts.map +1 -0
  45. package/dist/daemon/handlers/stages/04-skill-suggestions.js +23 -0
  46. package/dist/daemon/handlers/stages/04-skill-suggestions.js.map +1 -0
  47. package/dist/daemon/handlers/stages/05-conv-config.d.ts +10 -0
  48. package/dist/daemon/handlers/stages/05-conv-config.d.ts.map +1 -0
  49. package/dist/daemon/handlers/stages/05-conv-config.js +23 -0
  50. package/dist/daemon/handlers/stages/05-conv-config.js.map +1 -0
  51. package/dist/daemon/handlers/stages/06-engine-check.d.ts +8 -0
  52. package/dist/daemon/handlers/stages/06-engine-check.d.ts.map +1 -0
  53. package/dist/daemon/handlers/stages/06-engine-check.js +13 -0
  54. package/dist/daemon/handlers/stages/06-engine-check.js.map +1 -0
  55. package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts +9 -0
  56. package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts.map +1 -0
  57. package/dist/daemon/handlers/stages/07-pipeline-reply.js +44 -0
  58. package/dist/daemon/handlers/stages/07-pipeline-reply.js.map +1 -0
  59. package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts +9 -0
  60. package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts.map +1 -0
  61. package/dist/daemon/handlers/stages/08-esc-interrupt.js +52 -0
  62. package/dist/daemon/handlers/stages/08-esc-interrupt.js.map +1 -0
  63. package/dist/daemon/handlers/stages/09-pipeline-active.d.ts +8 -0
  64. package/dist/daemon/handlers/stages/09-pipeline-active.d.ts.map +1 -0
  65. package/dist/daemon/handlers/stages/09-pipeline-active.js +20 -0
  66. package/dist/daemon/handlers/stages/09-pipeline-active.js.map +1 -0
  67. package/dist/daemon/handlers/stages/10-cooldown.d.ts +9 -0
  68. package/dist/daemon/handlers/stages/10-cooldown.d.ts.map +1 -0
  69. package/dist/daemon/handlers/stages/10-cooldown.js +44 -0
  70. package/dist/daemon/handlers/stages/10-cooldown.js.map +1 -0
  71. package/dist/daemon/handlers/stages/11-intent-analysis.d.ts +8 -0
  72. package/dist/daemon/handlers/stages/11-intent-analysis.d.ts.map +1 -0
  73. package/dist/daemon/handlers/stages/11-intent-analysis.js +38 -0
  74. package/dist/daemon/handlers/stages/11-intent-analysis.js.map +1 -0
  75. package/dist/daemon/handlers/stages/12-strategy-advice.d.ts +8 -0
  76. package/dist/daemon/handlers/stages/12-strategy-advice.d.ts.map +1 -0
  77. package/dist/daemon/handlers/stages/12-strategy-advice.js +20 -0
  78. package/dist/daemon/handlers/stages/12-strategy-advice.js.map +1 -0
  79. package/dist/daemon/handlers/stages/13-template-route.d.ts +8 -0
  80. package/dist/daemon/handlers/stages/13-template-route.d.ts.map +1 -0
  81. package/dist/daemon/handlers/stages/13-template-route.js +49 -0
  82. package/dist/daemon/handlers/stages/13-template-route.js.map +1 -0
  83. package/dist/daemon/handlers/stages/14-plan-resume.d.ts +8 -0
  84. package/dist/daemon/handlers/stages/14-plan-resume.d.ts.map +1 -0
  85. package/dist/daemon/handlers/stages/14-plan-resume.js +51 -0
  86. package/dist/daemon/handlers/stages/14-plan-resume.js.map +1 -0
  87. package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts +8 -0
  88. package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts.map +1 -0
  89. package/dist/daemon/handlers/stages/15-plan-enforcement.js +41 -0
  90. package/dist/daemon/handlers/stages/15-plan-enforcement.js.map +1 -0
  91. package/dist/daemon/handlers/stages/16-intervention-level.d.ts +8 -0
  92. package/dist/daemon/handlers/stages/16-intervention-level.d.ts.map +1 -0
  93. package/dist/daemon/handlers/stages/16-intervention-level.js +24 -0
  94. package/dist/daemon/handlers/stages/16-intervention-level.js.map +1 -0
  95. package/dist/daemon/handlers/stages/17-simple-task.d.ts +8 -0
  96. package/dist/daemon/handlers/stages/17-simple-task.d.ts.map +1 -0
  97. package/dist/daemon/handlers/stages/17-simple-task.js +47 -0
  98. package/dist/daemon/handlers/stages/17-simple-task.js.map +1 -0
  99. package/dist/daemon/handlers/stages/18-complex-task.d.ts +11 -0
  100. package/dist/daemon/handlers/stages/18-complex-task.d.ts.map +1 -0
  101. package/dist/daemon/handlers/stages/18-complex-task.js +84 -0
  102. package/dist/daemon/handlers/stages/18-complex-task.js.map +1 -0
  103. package/dist/daemon/handlers/stages/19-moderate-task.d.ts +8 -0
  104. package/dist/daemon/handlers/stages/19-moderate-task.d.ts.map +1 -0
  105. package/dist/daemon/handlers/stages/19-moderate-task.js +62 -0
  106. package/dist/daemon/handlers/stages/19-moderate-task.js.map +1 -0
  107. package/dist/daemon/handlers/stages/stage-interface.d.ts +24 -0
  108. package/dist/daemon/handlers/stages/stage-interface.d.ts.map +1 -0
  109. package/dist/daemon/handlers/stages/stage-interface.js +2 -0
  110. package/dist/daemon/handlers/stages/stage-interface.js.map +1 -0
  111. package/dist/daemon/handlers/stop-handler.js +2 -2
  112. package/dist/daemon/handlers/stop-handler.js.map +1 -1
  113. package/dist/daemon/handlers/user-prompt-handler.d.ts +1 -115
  114. package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
  115. package/dist/daemon/handlers/user-prompt-handler.js +76 -1089
  116. package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
  117. package/dist/daemon/index.d.ts.map +1 -1
  118. package/dist/daemon/index.js +3 -1
  119. package/dist/daemon/index.js.map +1 -1
  120. package/dist/pipeline/artifact-generator.d.ts.map +1 -1
  121. package/dist/pipeline/artifact-generator.js +21 -0
  122. package/dist/pipeline/artifact-generator.js.map +1 -1
  123. package/dist/storage/repositories/api-usage-repository.d.ts +28 -0
  124. package/dist/storage/repositories/api-usage-repository.d.ts.map +1 -0
  125. package/dist/storage/repositories/api-usage-repository.js +59 -0
  126. package/dist/storage/repositories/api-usage-repository.js.map +1 -0
  127. package/dist/storage/repositories/base-repository.d.ts +6 -0
  128. package/dist/storage/repositories/base-repository.d.ts.map +1 -0
  129. package/dist/storage/repositories/base-repository.js +7 -0
  130. package/dist/storage/repositories/base-repository.js.map +1 -0
  131. package/dist/storage/repositories/distill-repository.d.ts +36 -0
  132. package/dist/storage/repositories/distill-repository.d.ts.map +1 -0
  133. package/dist/storage/repositories/distill-repository.js +85 -0
  134. package/dist/storage/repositories/distill-repository.js.map +1 -0
  135. package/dist/storage/repositories/event-repository.d.ts +14 -0
  136. package/dist/storage/repositories/event-repository.d.ts.map +1 -0
  137. package/dist/storage/repositories/event-repository.js +171 -0
  138. package/dist/storage/repositories/event-repository.js.map +1 -0
  139. package/dist/storage/repositories/failure-repository.d.ts +22 -0
  140. package/dist/storage/repositories/failure-repository.d.ts.map +1 -0
  141. package/dist/storage/repositories/failure-repository.js +26 -0
  142. package/dist/storage/repositories/failure-repository.js.map +1 -0
  143. package/dist/storage/repositories/intent-rule-repository.d.ts +20 -0
  144. package/dist/storage/repositories/intent-rule-repository.d.ts.map +1 -0
  145. package/dist/storage/repositories/intent-rule-repository.js +38 -0
  146. package/dist/storage/repositories/intent-rule-repository.js.map +1 -0
  147. package/dist/storage/repositories/knowledge-repository.d.ts +46 -0
  148. package/dist/storage/repositories/knowledge-repository.d.ts.map +1 -0
  149. package/dist/storage/repositories/knowledge-repository.js +84 -0
  150. package/dist/storage/repositories/knowledge-repository.js.map +1 -0
  151. package/dist/storage/repositories/latency-repository.d.ts +21 -0
  152. package/dist/storage/repositories/latency-repository.d.ts.map +1 -0
  153. package/dist/storage/repositories/latency-repository.js +42 -0
  154. package/dist/storage/repositories/latency-repository.js.map +1 -0
  155. package/dist/storage/repositories/maintenance-repository.d.ts +18 -0
  156. package/dist/storage/repositories/maintenance-repository.d.ts.map +1 -0
  157. package/dist/storage/repositories/maintenance-repository.js +61 -0
  158. package/dist/storage/repositories/maintenance-repository.js.map +1 -0
  159. package/dist/storage/repositories/satisfaction-repository.d.ts +21 -0
  160. package/dist/storage/repositories/satisfaction-repository.d.ts.map +1 -0
  161. package/dist/storage/repositories/satisfaction-repository.js +26 -0
  162. package/dist/storage/repositories/satisfaction-repository.js.map +1 -0
  163. package/dist/storage/repositories/session-repository.d.ts +16 -0
  164. package/dist/storage/repositories/session-repository.d.ts.map +1 -0
  165. package/dist/storage/repositories/session-repository.js +69 -0
  166. package/dist/storage/repositories/session-repository.js.map +1 -0
  167. package/dist/storage/repositories/task-repository.d.ts +82 -0
  168. package/dist/storage/repositories/task-repository.d.ts.map +1 -0
  169. package/dist/storage/repositories/task-repository.js +198 -0
  170. package/dist/storage/repositories/task-repository.js.map +1 -0
  171. package/dist/storage/sqlite.d.ts +25 -0
  172. package/dist/storage/sqlite.d.ts.map +1 -1
  173. package/dist/storage/sqlite.js +27 -0
  174. package/dist/storage/sqlite.js.map +1 -1
  175. package/dist/utils/claude-api.d.ts.map +1 -1
  176. package/dist/utils/claude-api.js +3 -1
  177. package/dist/utils/claude-api.js.map +1 -1
  178. package/dist/utils/logger.d.ts +7 -0
  179. package/dist/utils/logger.d.ts.map +1 -1
  180. package/dist/utils/logger.js +22 -0
  181. package/dist/utils/logger.js.map +1 -1
  182. package/package.json +1 -1
@@ -0,0 +1,429 @@
1
+ import { ForgeFormatter } from '../../utils/formatter.js';
2
+ import { TreeIndexEngine } from '../../distill/tree-index.js';
3
+ import { logger } from '../../utils/logger.js';
4
+ import { readActivePlanSummary } from '../../utils/plan-reader.js';
5
+ import { buildSessionStartPlanContext } from '../../utils/plan-reader.js';
6
+ import fs from 'fs';
7
+ import path from 'path';
8
+ import os from 'os';
9
+ /**
10
+ * ContextBuilder — 上下文构建工具类
11
+ * 包含所有从 UserPromptHandler 提取的工具方法
12
+ */
13
+ export class ContextBuilder {
14
+ ctx;
15
+ constructor(ctx) {
16
+ this.ctx = ctx;
17
+ }
18
+ /** 构建会话上下文:最近的用户输入 + 工具调用摘要 */
19
+ buildConversationHistory(sessionId, projectPath) {
20
+ try {
21
+ const { storage } = this.ctx;
22
+ const recentEvents = storage.queryEvents({
23
+ session_id: sessionId,
24
+ project_path: projectPath,
25
+ limit: 15,
26
+ });
27
+ if (recentEvents.length === 0)
28
+ return undefined;
29
+ const lines = [];
30
+ const userPrompts = recentEvents
31
+ .filter(e => e.hook_type === 'UserPromptSubmit' && e.tool_input)
32
+ .slice(0, 4)
33
+ .slice(1)
34
+ .reverse();
35
+ if (userPrompts.length > 0) {
36
+ lines.push('### 最近的用户指令');
37
+ for (const e of userPrompts) {
38
+ const prompt = e.tool_input?.user_prompt || '';
39
+ if (prompt) {
40
+ lines.push(`- ${prompt.substring(0, 150)}`);
41
+ }
42
+ }
43
+ }
44
+ const toolEvents = recentEvents
45
+ .filter(e => (e.hook_type === 'PostToolUse' || e.hook_type === 'PreToolUse') && e.tool_name)
46
+ .slice(0, 5)
47
+ .reverse();
48
+ if (toolEvents.length > 0) {
49
+ lines.push('### 最近的工具调用');
50
+ for (const e of toolEvents) {
51
+ const inputStr = e.tool_input ? JSON.stringify(e.tool_input).substring(0, 100) : '';
52
+ lines.push(`- ${e.tool_name}: ${inputStr}`);
53
+ }
54
+ }
55
+ if (lines.length === 0)
56
+ return undefined;
57
+ return lines.join('\n');
58
+ }
59
+ catch {
60
+ return undefined;
61
+ }
62
+ }
63
+ /** 构建用户画像上下文 */
64
+ buildProfileContext(projectPath, cache) {
65
+ const cacheEntry = cache.get(projectPath);
66
+ if (cacheEntry?.profileInjected)
67
+ return undefined;
68
+ const profile = this.ctx.profileManager.get();
69
+ if (!profile.initialized)
70
+ return undefined;
71
+ cache.set(projectPath, {
72
+ ...(cacheEntry ?? { decisionsKey: '', decisionsResult: '', decisionsRawTail: '', profileInjected: false, planContextInjected: false, skillSuggestionsInjected: false }),
73
+ profileInjected: true,
74
+ });
75
+ const persona = this.readProjectPersona(projectPath);
76
+ logger.info(`注入用户画像:角色=${profile.role} 经验=${profile.experience_level} 风格=${profile.work_style}${persona ? ' 人设=已加载' : ''}`);
77
+ return ForgeFormatter.formatProfileContext(profile, persona);
78
+ }
79
+ /** 读取项目人设文本 */
80
+ readProjectPersona(projectPath) {
81
+ try {
82
+ const modulesYaml = path.join(projectPath, '.forge-modules.yaml');
83
+ if (fs.existsSync(modulesYaml)) {
84
+ const raw = fs.readFileSync(modulesYaml, 'utf-8');
85
+ const match = raw.match(/^persona:\s*["']?(.+?)["']?\s*$/m);
86
+ if (match?.[1]?.trim())
87
+ return match[1].trim();
88
+ }
89
+ const personaFile = path.join(projectPath, '.claude-forge', 'persona.md');
90
+ if (fs.existsSync(personaFile)) {
91
+ const stored = fs.readFileSync(personaFile, 'utf-8').trim();
92
+ if (stored)
93
+ return stored;
94
+ }
95
+ }
96
+ catch {
97
+ // 读取失败静默忽略
98
+ }
99
+ return undefined;
100
+ }
101
+ /** 构建计划进度上下文 */
102
+ buildPlanStartContext(projectPath, cache) {
103
+ const cacheEntry = cache.get(projectPath);
104
+ if (cacheEntry?.planContextInjected)
105
+ return undefined;
106
+ cache.set(projectPath, {
107
+ ...(cacheEntry ?? { decisionsKey: '', decisionsResult: '', decisionsRawTail: '', profileInjected: false, planContextInjected: false, skillSuggestionsInjected: false }),
108
+ planContextInjected: true,
109
+ });
110
+ const ctx = buildSessionStartPlanContext(projectPath);
111
+ if (ctx) {
112
+ logger.info(`注入计划上下文:${projectPath}`);
113
+ }
114
+ return ctx ?? undefined;
115
+ }
116
+ /** 读取技能优化建议文件,读取后立即删除 */
117
+ readAndDeleteSkillSuggestions(projectPath, cache) {
118
+ const cacheEntry = cache.get(projectPath);
119
+ if (cacheEntry?.skillSuggestionsInjected)
120
+ return undefined;
121
+ cache.set(projectPath, {
122
+ ...(cacheEntry ?? { decisionsKey: '', decisionsResult: '', decisionsRawTail: '', profileInjected: false, planContextInjected: false, skillSuggestionsInjected: false }),
123
+ skillSuggestionsInjected: true,
124
+ });
125
+ try {
126
+ const suggestionsFile = path.join(os.homedir(), '.claude-forge', 'skill-suggestions.md');
127
+ if (!fs.existsSync(suggestionsFile))
128
+ return undefined;
129
+ const content = fs.readFileSync(suggestionsFile, 'utf-8').trim();
130
+ fs.unlinkSync(suggestionsFile);
131
+ if (!content)
132
+ return undefined;
133
+ return content.replace(/^#\s*.+\n+/, '').trim() || undefined;
134
+ }
135
+ catch {
136
+ return undefined;
137
+ }
138
+ }
139
+ /** 判断用户输入是否含有代码变更意图 */
140
+ isCodeChangeIntent(requirement) {
141
+ return /implement|add|fix|refactor|create|write|edit|update|build|删除|修复|实现|新增|添加|编写|创建|重构|开发/i.test(requirement);
142
+ }
143
+ /** 知识图谱上下文:查找历史成功路径 */
144
+ async buildGraphContext(keywords, projectPath) {
145
+ const graph = this.ctx.retrospectiveEngine?.getKnowledgeGraph();
146
+ if (!graph || keywords.length === 0)
147
+ return undefined;
148
+ try {
149
+ const paths = await graph.findSimilarSuccessfulPaths(projectPath, keywords, 3);
150
+ if (paths.length === 0)
151
+ return undefined;
152
+ const lines = ['[历史成功路径参考]'];
153
+ for (const p of paths) {
154
+ lines.push(`- 需求:${p.requirement}`);
155
+ if (p.decisions.length > 0)
156
+ lines.push(` 决策:${p.decisions.join(' → ')}`);
157
+ lines.push(` 结果:${p.outcome}`);
158
+ }
159
+ return lines.join('\n');
160
+ }
161
+ catch {
162
+ return undefined;
163
+ }
164
+ }
165
+ /** FTS5 历史场景检索 */
166
+ buildSimilarSessionContext(keywords, projectPath, cache) {
167
+ if (!keywords || keywords.length === 0)
168
+ return undefined;
169
+ try {
170
+ const { storage } = this.ctx;
171
+ const hits = storage.searchByKeywords(keywords, projectPath, 10);
172
+ if (hits.length === 0)
173
+ return undefined;
174
+ const sessionIds = [];
175
+ for (const ev of hits) {
176
+ if (!sessionIds.includes(ev.session_id) && sessionIds.length < 3) {
177
+ sessionIds.push(ev.session_id);
178
+ }
179
+ }
180
+ if (sessionIds.length === 0)
181
+ return undefined;
182
+ const cacheEntry = cache.get(projectPath);
183
+ let rawTail;
184
+ if (cacheEntry?.decisionsRawTail) {
185
+ rawTail = cacheEntry.decisionsRawTail;
186
+ }
187
+ else {
188
+ const fileData = this.readDecisionsFile(projectPath, cache);
189
+ if (!fileData)
190
+ return undefined;
191
+ rawTail = fileData.tail;
192
+ }
193
+ if (!rawTail.trim())
194
+ return undefined;
195
+ const snippet = rawTail.length > 600 ? '...\n' + rawTail.slice(-600) : rawTail;
196
+ const sessionList = sessionIds.map(id => `- ${id.slice(0, 8)}...`).join('\n');
197
+ return `[相似历史场景]\n关键词:${keywords.slice(0, 5).join('、')}\n匹配会话:\n${sessionList}\n\n历史决策摘要:\n\`\`\`\n${snippet}\n\`\`\``;
198
+ }
199
+ catch {
200
+ return undefined;
201
+ }
202
+ }
203
+ /** 增量读取 decisions.md 末尾 */
204
+ readDecisionsFile(projectPath, cache, tailBytes = 2048) {
205
+ try {
206
+ const decisionsPath = path.join(projectPath, '.claude-forge', 'decisions.md');
207
+ if (!fs.existsSync(decisionsPath))
208
+ return null;
209
+ const stat = fs.statSync(decisionsPath);
210
+ if (stat.size === 0)
211
+ return null;
212
+ const readSize = Math.min(tailBytes, stat.size);
213
+ const buf = Buffer.alloc(readSize);
214
+ const fd = fs.openSync(decisionsPath, 'r');
215
+ try {
216
+ fs.readSync(fd, buf, 0, readSize, stat.size - readSize);
217
+ }
218
+ finally {
219
+ fs.closeSync(fd);
220
+ }
221
+ const fingerprint = `${stat.size}:${stat.mtimeMs}`;
222
+ const tail = buf.toString('utf-8');
223
+ const cacheEntry = cache.get(projectPath);
224
+ if (!cacheEntry || cacheEntry.decisionsKey !== fingerprint) {
225
+ cache.set(projectPath, {
226
+ ...(cacheEntry ?? { decisionsKey: '', decisionsResult: '', decisionsRawTail: '', profileInjected: false, planContextInjected: false, skillSuggestionsInjected: false }),
227
+ decisionsKey: fingerprint,
228
+ decisionsRawTail: tail,
229
+ });
230
+ }
231
+ return { tail, fingerprint };
232
+ }
233
+ catch {
234
+ return null;
235
+ }
236
+ }
237
+ /** 读取项目决策历史 */
238
+ async readDecisionsContext(requirement, projectPath, cache) {
239
+ const needsContext = /架构|设计|重构|优化|改造|迁移|升级|architecture|design|refactor/i.test(requirement);
240
+ if (!needsContext)
241
+ return undefined;
242
+ try {
243
+ const decisionsPath = path.join(projectPath, '.claude-forge', 'decisions.md');
244
+ if (!fs.existsSync(decisionsPath))
245
+ return undefined;
246
+ const stat = fs.statSync(decisionsPath);
247
+ const fingerprint = `${stat.size}:${stat.mtimeMs}`;
248
+ const cacheEntry = cache.get(projectPath);
249
+ if (cacheEntry?.decisionsKey === fingerprint) {
250
+ logger.info('[Forge:决策] 内容未变,复用缓存');
251
+ return cacheEntry.decisionsResult || undefined;
252
+ }
253
+ const treeResult = await this.readDecisionsViaTreeIndex(requirement, decisionsPath);
254
+ if (treeResult) {
255
+ const result = ForgeFormatter.formatModuleNotification('decisions', `项目决策历史(推理检索):\n${treeResult}`);
256
+ cache.set(projectPath, {
257
+ ...(cacheEntry ?? { decisionsKey: '', decisionsResult: '', decisionsRawTail: '', profileInjected: false, planContextInjected: false, skillSuggestionsInjected: false }),
258
+ decisionsKey: fingerprint,
259
+ decisionsResult: result,
260
+ decisionsRawTail: '',
261
+ });
262
+ return result;
263
+ }
264
+ logger.info('[Forge:决策] 树索引不可用,降级到关键词切片');
265
+ return this.readDecisionsContextFallback(requirement, projectPath, fingerprint, cache);
266
+ }
267
+ catch {
268
+ return undefined;
269
+ }
270
+ }
271
+ /** 树索引推理检索 */
272
+ async readDecisionsViaTreeIndex(requirement, decisionsPath) {
273
+ try {
274
+ if (TreeIndexEngine.isStale(decisionsPath)) {
275
+ logger.info('[TreeIndex] 索引过期或不存在,跳过推理检索');
276
+ return null;
277
+ }
278
+ const index = TreeIndexEngine.loadFromFile(decisionsPath);
279
+ if (!index || index.structure.length === 0)
280
+ return null;
281
+ const api = this.ctx.intentEngine?.getProvider();
282
+ if (!api)
283
+ return null;
284
+ const engine = new TreeIndexEngine(api);
285
+ const result = await engine.search(index, requirement);
286
+ if (result && result.length > 50) {
287
+ logger.info(`[TreeIndex] 推理检索成功,返回 ${result.length} 字符`);
288
+ return result;
289
+ }
290
+ return null;
291
+ }
292
+ catch (err) {
293
+ logger.warn(`[TreeIndex] 推理检索失败:${err}`);
294
+ return null;
295
+ }
296
+ }
297
+ /** 降级方案:关键词切片 */
298
+ readDecisionsContextFallback(requirement, projectPath, fingerprint, cache) {
299
+ const cacheEntry = cache.get(projectPath);
300
+ const fileData = this.readDecisionsFile(projectPath, cache);
301
+ if (!fileData)
302
+ return undefined;
303
+ const { tail } = fileData;
304
+ if (!tail.trim())
305
+ return undefined;
306
+ const keywords = requirement
307
+ .split(/[\s,,、。.!!??]+/)
308
+ .map(w => w.trim())
309
+ .filter(w => w.length >= 2);
310
+ const blocks = tail.split(/(?=^## )/m).filter(b => b.trim());
311
+ let relevant;
312
+ if (keywords.length > 0) {
313
+ relevant = blocks.filter(block => keywords.some(kw => block.toLowerCase().includes(kw.toLowerCase())));
314
+ if (relevant.length === 0)
315
+ relevant = blocks.slice(-2);
316
+ }
317
+ else {
318
+ relevant = blocks.slice(-2);
319
+ }
320
+ let snippet = relevant.join('\n').trim();
321
+ if (snippet.length > 600)
322
+ snippet = '...\n' + snippet.slice(-600);
323
+ const result = ForgeFormatter.formatModuleNotification('decisions', `项目决策历史(关键词匹配):\n\`\`\`\n${snippet}\n\`\`\``);
324
+ cache.set(projectPath, {
325
+ ...(cacheEntry ?? { decisionsKey: '', decisionsResult: '', decisionsRawTail: '', profileInjected: false, planContextInjected: false, skillSuggestionsInjected: false }),
326
+ decisionsKey: fingerprint,
327
+ decisionsResult: result,
328
+ decisionsRawTail: tail,
329
+ });
330
+ logger.info(`[Forge:决策] 关键词匹配注入 ${relevant.length} 个块(${snippet.length} 字符)`);
331
+ return result;
332
+ }
333
+ /** 根据用户需求关键词推断当前最匹配的 Convention 角色 */
334
+ inferCurrentRole(requirement, conventions) {
335
+ const input = requirement.toLowerCase();
336
+ const roleKeywords = [
337
+ { keywords: ['需求', '用户故事', '产品', '规格', '验收', 'spec', 'requirement'], roleKeys: ['product_manager'] },
338
+ { keywords: ['架构', '设计', '方案', '技术选型', 'api', '数据模型', 'schema'], roleKeys: ['architect'] },
339
+ { keywords: ['测试', '覆盖', '安全网', 'test', '特征测试', '边界'], roleKeys: ['safety_net_engineer', 'verification_engineer'] },
340
+ { keywords: ['审查', 'review', '代码审查', '检查', '质量'], roleKeys: ['tech_lead', 'verification_engineer'] },
341
+ { keywords: ['理解', '分析', '阅读', '调查', '排查', '诊断', 'debug'], roleKeys: ['code_archaeologist'] },
342
+ { keywords: ['实现', '编码', '开发', '修复', '重构', '优化', '改', '加', '写', 'fix', 'implement', 'refactor'], roleKeys: ['developer', 'surgeon'] },
343
+ ];
344
+ const allRoles = new Map();
345
+ for (const conv of conventions) {
346
+ for (const [key, role] of Object.entries(conv.roles ?? {})) {
347
+ allRoles.set(key, role);
348
+ }
349
+ }
350
+ if (allRoles.size === 0)
351
+ return null;
352
+ for (const { keywords, roleKeys } of roleKeywords) {
353
+ if (keywords.some(kw => input.includes(kw))) {
354
+ for (const rk of roleKeys) {
355
+ const role = allRoles.get(rk);
356
+ if (role)
357
+ return role;
358
+ }
359
+ }
360
+ }
361
+ return allRoles.get('developer') ?? allRoles.get('surgeon') ?? null;
362
+ }
363
+ /** 负向重启回溯修正 */
364
+ async applyNegativeRestartPenalty(projectPath, currentSessionId) {
365
+ try {
366
+ const last = this.ctx.storage.getLastCompletedTaskSession(projectPath);
367
+ if (!last)
368
+ return;
369
+ if (last.session_id === currentSessionId)
370
+ return;
371
+ if (last.ended_at) {
372
+ const age = Date.now() - new Date(last.ended_at).getTime();
373
+ if (age > 24 * 60 * 60 * 1000)
374
+ return;
375
+ }
376
+ const prevScore = last.satisfaction_score ?? 0.5;
377
+ const newScore = Math.max(0.1, prevScore * 0.5);
378
+ this.ctx.storage.updateTaskSessionSatisfaction(last.id, newScore);
379
+ this.ctx.storage.insertSatisfactionSignal({
380
+ id: `ss_restart_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`,
381
+ session_id: last.session_id,
382
+ project_path: projectPath,
383
+ task_session_id: last.id,
384
+ signal_type: 'negative_restart_penalty',
385
+ signal_value: newScore - prevScore,
386
+ weight: 1.0,
387
+ raw_data: { prev_score: prevScore, new_score: newScore, triggered_by_session: currentSessionId },
388
+ });
389
+ logger.info(`[Forge:满意度] 检测到负向重启,回溯修正上一 session 评分:${prevScore.toFixed(3)} → ${newScore.toFixed(3)}`);
390
+ }
391
+ catch (err) {
392
+ logger.warn(`[Forge:满意度] 负向重启回溯修正失败:${err}`);
393
+ }
394
+ }
395
+ /** 构建用户上下文(供 IntentEngine 有状态分析) */
396
+ buildUserContext(projectPath) {
397
+ const profile = this.ctx.profileManager.get();
398
+ const recentSatisfaction = this.ctx.storage.getSatisfactionHistory(projectPath, 10);
399
+ const avgSatisfaction = recentSatisfaction.length > 0
400
+ ? recentSatisfaction.reduce((sum, row) => sum + row.score, 0) / recentSatisfaction.length
401
+ : 0.5;
402
+ const complexityCount = { simple: 0, moderate: 0, complex: 0 };
403
+ for (const row of recentSatisfaction) {
404
+ if (row.complexity === 'simple' || row.complexity === 'moderate' || row.complexity === 'complex') {
405
+ complexityCount[row.complexity]++;
406
+ }
407
+ }
408
+ const preferredComplexity = (Object.entries(complexityCount).sort((a, b) => b[1] - a[1])[0]?.[0] ?? 'moderate');
409
+ const experienceLevelMap = {
410
+ junior: 'beginner',
411
+ mid: 'intermediate',
412
+ senior: 'intermediate',
413
+ expert: 'expert',
414
+ };
415
+ return {
416
+ work_style: profile.work_style ?? 'balanced',
417
+ experience_level: experienceLevelMap[profile.experience_level ?? 'mid'],
418
+ skip_rate: profile.skip_rate ?? 0,
419
+ override_rate: profile.override_rate ?? 0,
420
+ avg_satisfaction: avgSatisfaction,
421
+ preferred_complexity: preferredComplexity,
422
+ };
423
+ }
424
+ /** 读取活跃计划摘要 */
425
+ readActivePlanSummary(projectPath) {
426
+ return readActivePlanSummary(projectPath) ?? undefined;
427
+ }
428
+ }
429
+ //# sourceMappingURL=context-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-builder.js","sourceRoot":"","sources":["../../../src/daemon/handlers/context-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { ForgeEvent } from '../../types/index.js';
2
+ import type { HandlerContext } from '../handler-context.js';
3
+ import type { IntentAnalysis } from '../../autopilot/intent-engine.js';
4
+ import type { ActivePlanSummary } from '../../utils/plan-reader.js';
5
+ import type { TemplateRegistry } from '../../pipeline/template-registry.js';
6
+ import type { TemplateRouter } from '../../pipeline/template-router.js';
7
+ /** session 级注入缓存条目,避免同一 session 内重复注入相同内容 */
8
+ export interface InjectionCache {
9
+ decisionsKey: string;
10
+ decisionsResult: string;
11
+ decisionsRawTail: string;
12
+ profileInjected: boolean;
13
+ planContextInjected: boolean;
14
+ skillSuggestionsInjected: boolean;
15
+ }
16
+ /**
17
+ * 编排流水线共享上下文
18
+ * 在 handle() 入口构建,贯穿所有 Stage 执行
19
+ */
20
+ export interface OrchestrationContext {
21
+ event: ForgeEvent;
22
+ userPrompt: string;
23
+ handlerCtx: HandlerContext;
24
+ suggestionPending: Map<string, boolean>;
25
+ lastAnalysisAt: Map<string, number>;
26
+ injectionCache: Map<string, InjectionCache>;
27
+ negativeRestartChecked: Set<string>;
28
+ initPromptedSessions: Set<string>;
29
+ initPromptedAt: Map<string, number>;
30
+ templateRegistry: TemplateRegistry | null;
31
+ templateRouter: TemplateRouter | null;
32
+ analysis?: IntentAnalysis;
33
+ activePlan?: ActivePlanSummary;
34
+ interventionLevel?: string;
35
+ card?: string;
36
+ }
37
+ //# sourceMappingURL=orchestration-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration-context.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/orchestration-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IAEnC,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,cAAc,CAAC;IAG3B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IAGtC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=orchestration-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration-context.js","sourceRoot":"","sources":["../../../src/daemon/handlers/orchestration-context.ts"],"names":[],"mappings":""}
@@ -3,7 +3,7 @@ import { DistillWriter } from '../../distill/writer.js';
3
3
  import { DocSyncEngine } from '../../doc-sync/index.js';
4
4
  import { PhaseArtifactGenerator } from '../../pipeline/artifact-generator.js';
5
5
  import { ArtifactManager } from '../../utils/artifact-manager.js';
6
- import { logger } from '../../utils/logger.js';
6
+ import { logger, relPath } from '../../utils/logger.js';
7
7
  import fs from 'fs';
8
8
  import path from 'path';
9
9
  import os from 'os';
@@ -27,7 +27,7 @@ export class SessionCleanupService {
27
27
  return;
28
28
  }
29
29
  try {
30
- logger.info(`[Forge:CLAUDE.md] 开始自动更新:${event.project_path.split('/').slice(-2).join('/')}`);
30
+ logger.info(`[Forge:CLAUDE.md] 开始自动更新:${relPath(event.project_path)}`);
31
31
  const claudeMdEngine = new ClaudeMdEngine(this.ctx.sharedApi);
32
32
  const distillWriter = new DistillWriter();
33
33
  const lastDecisions = distillWriter.readDecisionsSince(event.project_path) || distillWriter.readLastDecisions(event.project_path, 30);
@@ -64,7 +64,7 @@ export class SessionCleanupService {
64
64
  start_time: windowStart,
65
65
  limit: 1000,
66
66
  });
67
- logger.info(`[Forge:文档同步] 开始同步 | 项目=${event.project_path.split('/').slice(-2).join('/')} | 近 2h 事件=${recentEvents.length} 条`);
67
+ logger.info(`[Forge:文档同步] 开始同步 | 项目=${relPath(event.project_path)} | 近 2h 事件=${recentEvents.length} 条`);
68
68
  const docSync = new DocSyncEngine(this.ctx.sharedApi);
69
69
  await docSync.sync(event.session_id, event.project_path, recentEvents);
70
70
  logger.info(`[Forge:文档同步] 完成`);
@@ -109,7 +109,7 @@ export class SessionCleanupService {
109
109
  return;
110
110
  }
111
111
  try {
112
- logger.info(`[Forge:项目学习] 开始:${event.project_path.split('/').slice(-2).join('/')}`);
112
+ logger.info(`[Forge:项目学习] 开始:${relPath(event.project_path)}`);
113
113
  const learnReport = await this.ctx.skillRegistry.learnFromProject(event.project_path);
114
114
  if (learnReport && learnReport.generated.length > 0) {
115
115
  logger.info(`[Forge:项目学习] 完成:生成 ${learnReport.generated.length} 个专属技能`);
@@ -323,7 +323,7 @@ export class SessionCleanupService {
323
323
  }
324
324
  // 项目路径匹配:完整路径 或 最后两段(basename/subname)
325
325
  const projectBasename = path.basename(event.project_path);
326
- const projectTail = event.project_path.split('/').slice(-2).join('/');
326
+ const projectTail = relPath(event.project_path);
327
327
  // 找到第一个内容中包含当前项目路径引用的计划文件
328
328
  let matchedPlan = null;
329
329
  let matchedContent = '';
@@ -1 +1 @@
1
- {"version":3,"file":"session-cleanup.js","sourceRoot":"","sources":["../../../src/daemon/handlers/session-cleanup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAIpB;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACxB,GAAG,CAAiB;IAE5B,YAAY,GAAmB;QAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,cAAc,CAAC,KAAiB;QACpC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,4BAA4B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7F,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9D,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;YAC1C,MAAM,aAAa,GAAG,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACtI,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7F,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;YACvF,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACxC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,QAAQ,CAAC,KAAiB;QAC9B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;gBAChD,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,UAAU,EAAE,WAAW;gBACvB,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,0BAA0B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;YAC9H,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;gBACvF,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC,MAAM,WAAW,CAAC,CAAC;gBAClG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAClD,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;wBAC3B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC3E,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,aAAa;IACb,KAAK,CAAC,gBAAgB,CAAC,KAAiB;QACtC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACtF,IAAI,WAAW,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC,sBAAsB,WAAW,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,CAAC;gBACxE,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,sBAAsB,WAAW,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,aAAa;IACb,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,wBAAwB,CAAC,KAAiB;QAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAErC,mBAAmB;YACnB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE;kBAC9B,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;kBACjD,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,QAAQ,QAAQ,CAAC,CAAC;YAExF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAEjF,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;gBACzF,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,eAAe,WAAW,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC3E,MAAM,CAAC,IAAI,CAAC,yBAAyB,eAAe,EAAE,CAAC,CAAC;gBACxD,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,cAAc,CAClB,KAAiB,EACjB,gBAAwB,EACxB,gBAAwB;QAExB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,mBAAmB;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC1C,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,yCAAyC;YACzC,IAAI,MAAM,GAAoB,EAAE,CAAC;YACjC,IAAI,UAA8B,CAAC;YACnC,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACrF,IAAI,cAAc,EAAE,CAAC;oBACnB,UAAU,GAAG,cAAc,CAAC,EAAE,CAAC;oBAC/B,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;oBACzC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;YAED,yDAAyD;YACzD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,UAAU,GAAG,MAAM;qBACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,kBAAkB,IAAI,CAAC,CAAC,UAAU,CAAC;qBAC/D,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACf,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,WAAW,GAAI,UAAU,CAAC,CAAC,CAAC,CAAC,UAAqC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;gBACvG,CAAC;YACH,CAAC;YAED,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,cAAc,CAC/C,KAAK,EACL,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,UAAU,CACX,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,sBAAsB,CAAC,KAAiB;QAC5C,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,sBAAsB,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEjH,MAAM,MAAM,GAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3F,IAAI,SAAS,GAAG,CAAC,CAAC;YAElB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;gBAC7F,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;oBACpE,SAAS,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;YAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,uBAAuB,SAAS,QAAQ,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;YACjE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,sBAAsB,KAAK,MAAM,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,sBAAsB,CAAC,KAAiB;QAC5C,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YAED,gDAAgD;YAChD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,YAAY,CAAC,OAAO,EAAE,EACtB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CACjC,CAAC;YAEF,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC;iBACzC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE;gBACP,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;gBAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YACjD,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,aAAa,CAAC;iBACrC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAErC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,uCAAuC;YACvC,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEtE,0BAA0B;YAC1B,IAAI,WAAW,GAA2C,IAAI,CAAC;YAC/D,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACpD,IACE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;oBACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EACjC,CAAC;oBACD,WAAW,GAAG,IAAI,CAAC;oBACnB,cAAc,GAAG,OAAO,CAAC;oBACzB,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,yCAAyC,WAAW,EAAE,CAAC,CAAC;gBACrE,OAAO;YACT,CAAC;YAED,mBAAmB;YACnB,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAEzD,wCAAwC;YACxC,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,GAAG,KAAK,KAAK,CAAC;YAC/B,MAAM,WAAW,GAAG,eAAe,CAAC,aAAa,CAC/C,MAAM,EACN,QAAQ,EACR,cAAc,EACd,qBAAqB,EACrB,MAAM,CACP,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"session-cleanup.js","sourceRoot":"","sources":["../../../src/daemon/handlers/session-cleanup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAIpB;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACxB,GAAG,CAAiB;IAE5B,YAAY,GAAmB;QAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,cAAc,CAAC,KAAiB;QACpC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,4BAA4B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACvE,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9D,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;YAC1C,MAAM,aAAa,GAAG,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACtI,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7F,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;YACvF,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACxC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,QAAQ,CAAC,KAAiB;QAC9B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;gBAChD,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,UAAU,EAAE,WAAW;gBACvB,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,0BAA0B,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;YACxG,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;gBACvF,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC,MAAM,WAAW,CAAC,CAAC;gBAClG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAClD,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;wBAC3B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC3E,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,aAAa;IACb,KAAK,CAAC,gBAAgB,CAAC,KAAiB;QACtC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACtF,IAAI,WAAW,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpD,MAAM,CAAC,IAAI,CAAC,sBAAsB,WAAW,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,CAAC;gBACxE,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,sBAAsB,WAAW,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,aAAa;IACb,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,wBAAwB,CAAC,KAAiB;QAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAErC,mBAAmB;YACnB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE;kBAC9B,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;kBACjD,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,QAAQ,QAAQ,CAAC,CAAC;YAExF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAEjF,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;gBACzF,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,eAAe,WAAW,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC3E,MAAM,CAAC,IAAI,CAAC,yBAAyB,eAAe,EAAE,CAAC,CAAC;gBACxD,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,cAAc,CAClB,KAAiB,EACjB,gBAAwB,EACxB,gBAAwB;QAExB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,mBAAmB;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC1C,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,yCAAyC;YACzC,IAAI,MAAM,GAAoB,EAAE,CAAC;YACjC,IAAI,UAA8B,CAAC;YACnC,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACrF,IAAI,cAAc,EAAE,CAAC;oBACnB,UAAU,GAAG,cAAc,CAAC,EAAE,CAAC;oBAC/B,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;oBACzC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;YAED,yDAAyD;YACzD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,UAAU,GAAG,MAAM;qBACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,kBAAkB,IAAI,CAAC,CAAC,UAAU,CAAC;qBAC/D,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACf,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,WAAW,GAAI,UAAU,CAAC,CAAC,CAAC,CAAC,UAAqC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;gBACvG,CAAC;YACH,CAAC;YAED,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,cAAc,CAC/C,KAAK,EACL,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,UAAU,CACX,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,sBAAsB,CAAC,KAAiB;QAC5C,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,sBAAsB,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEjH,MAAM,MAAM,GAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3F,IAAI,SAAS,GAAG,CAAC,CAAC;YAElB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;gBAC7F,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;oBACpE,SAAS,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;YAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,uBAAuB,SAAS,QAAQ,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;YACjE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,sBAAsB,KAAK,MAAM,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,sBAAsB,CAAC,KAAiB;QAC5C,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YAED,gDAAgD;YAChD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,YAAY,CAAC,OAAO,EAAE,EACtB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CACjC,CAAC;YAEF,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC;iBACzC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE;gBACP,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;gBAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YACjD,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,aAAa,CAAC;iBACrC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAErC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,uCAAuC;YACvC,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAEhD,0BAA0B;YAC1B,IAAI,WAAW,GAA2C,IAAI,CAAC;YAC/D,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACpD,IACE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;oBACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EACjC,CAAC;oBACD,WAAW,GAAG,IAAI,CAAC;oBACnB,cAAc,GAAG,OAAO,CAAC;oBACzB,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,yCAAyC,WAAW,EAAE,CAAC,CAAC;gBACrE,OAAO;YACT,CAAC;YAED,mBAAmB;YACnB,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAEzD,wCAAwC;YACxC,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,GAAG,KAAK,KAAK,CAAC;YAC/B,MAAM,WAAW,GAAG,eAAe,CAAC,aAAa,CAC/C,MAAM,EACN,QAAQ,EACR,cAAc,EACd,qBAAqB,EACrB,MAAM,CACP,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import type { Stage, StageResult } from './stage-interface.js';
2
+ import type { OrchestrationContext } from '../orchestration-context.js';
3
+ /** Stage 01: 失败信号检测 + 负向重启回溯修正 */
4
+ export declare class FailureSignalStage implements Stage {
5
+ readonly name = "\u5931\u8D25\u4FE1\u53F7\u68C0\u6D4B";
6
+ execute(ctx: OrchestrationContext): Promise<StageResult>;
7
+ }
8
+ //# sourceMappingURL=01-failure-signal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"01-failure-signal.d.ts","sourceRoot":"","sources":["../../../../src/daemon/handlers/stages/01-failure-signal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAIxE,kCAAkC;AAClC,qBAAa,kBAAmB,YAAW,KAAK;IAC9C,QAAQ,CAAC,IAAI,0CAAY;IAEnB,OAAO,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;CAoC/D"}