@winspan/claude-forge 8.33.5 → 8.35.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 (184) hide show
  1. package/README.md +10 -30
  2. package/dist/agents/definition.d.ts +3 -0
  3. package/dist/agents/definition.d.ts.map +1 -1
  4. package/dist/agents/definition.js +3 -0
  5. package/dist/agents/definition.js.map +1 -1
  6. package/dist/agents/official-agents.d.ts.map +1 -1
  7. package/dist/agents/official-agents.js +6 -3
  8. package/dist/agents/official-agents.js.map +1 -1
  9. package/dist/agents/registry.d.ts +17 -1
  10. package/dist/agents/registry.d.ts.map +1 -1
  11. package/dist/agents/registry.js +106 -7
  12. package/dist/agents/registry.js.map +1 -1
  13. package/dist/capability/index.d.ts +6 -5
  14. package/dist/capability/index.d.ts.map +1 -1
  15. package/dist/capability/index.js +6 -5
  16. package/dist/capability/index.js.map +1 -1
  17. package/dist/capability/types.d.ts +5 -74
  18. package/dist/capability/types.d.ts.map +1 -1
  19. package/dist/capability/types.js +4 -1
  20. package/dist/capability/types.js.map +1 -1
  21. package/dist/cli/commands/executions.d.ts +3 -0
  22. package/dist/cli/commands/executions.d.ts.map +1 -0
  23. package/dist/cli/commands/executions.js +109 -0
  24. package/dist/cli/commands/executions.js.map +1 -0
  25. package/dist/cli/commands/skills.d.ts.map +1 -1
  26. package/dist/cli/commands/skills.js +83 -20
  27. package/dist/cli/commands/skills.js.map +1 -1
  28. package/dist/cli/index.js +2 -0
  29. package/dist/cli/index.js.map +1 -1
  30. package/dist/core/storage/rows.d.ts +14 -36
  31. package/dist/core/storage/rows.d.ts.map +1 -1
  32. package/dist/core/storage/schema.sql +27 -45
  33. package/dist/core/storage/sqlite.d.ts +11 -79
  34. package/dist/core/storage/sqlite.d.ts.map +1 -1
  35. package/dist/core/storage/sqlite.js +35 -362
  36. package/dist/core/storage/sqlite.js.map +1 -1
  37. package/dist/core/utils/token-tracker.d.ts +0 -1
  38. package/dist/core/utils/token-tracker.d.ts.map +1 -1
  39. package/dist/core/utils/token-tracker.js +0 -1
  40. package/dist/core/utils/token-tracker.js.map +1 -1
  41. package/dist/daemon/handlers/post-tool-use.d.ts +1 -9
  42. package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
  43. package/dist/daemon/handlers/post-tool-use.js +2 -99
  44. package/dist/daemon/handlers/post-tool-use.js.map +1 -1
  45. package/dist/daemon/handlers/stop.d.ts +5 -15
  46. package/dist/daemon/handlers/stop.d.ts.map +1 -1
  47. package/dist/daemon/handlers/stop.js +25 -93
  48. package/dist/daemon/handlers/stop.js.map +1 -1
  49. package/dist/daemon/handlers/user-prompt.d.ts +3 -5
  50. package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
  51. package/dist/daemon/handlers/user-prompt.js +39 -98
  52. package/dist/daemon/handlers/user-prompt.js.map +1 -1
  53. package/dist/daemon/index.d.ts.map +1 -1
  54. package/dist/daemon/index.js +11 -56
  55. package/dist/daemon/index.js.map +1 -1
  56. package/dist/daemon/routing-observer.d.ts.map +1 -1
  57. package/dist/daemon/routing-observer.js +24 -1
  58. package/dist/daemon/routing-observer.js.map +1 -1
  59. package/dist/intelligence/execution-doc-builder.d.ts +61 -0
  60. package/dist/intelligence/execution-doc-builder.d.ts.map +1 -0
  61. package/dist/intelligence/execution-doc-builder.js +601 -0
  62. package/dist/intelligence/execution-doc-builder.js.map +1 -0
  63. package/dist/skills/invocation-guard.d.ts +45 -0
  64. package/dist/skills/invocation-guard.d.ts.map +1 -0
  65. package/dist/skills/invocation-guard.js +82 -0
  66. package/dist/skills/invocation-guard.js.map +1 -0
  67. package/dist/skills/official-skills.d.ts.map +1 -1
  68. package/dist/skills/official-skills.js +218 -20
  69. package/dist/skills/official-skills.js.map +1 -1
  70. package/dist/skills/registry.d.ts +22 -0
  71. package/dist/skills/registry.d.ts.map +1 -1
  72. package/dist/skills/registry.js +30 -2
  73. package/dist/skills/registry.js.map +1 -1
  74. package/dist/skills/tools/skill-invoke.d.ts +36 -0
  75. package/dist/skills/tools/skill-invoke.d.ts.map +1 -0
  76. package/dist/skills/tools/skill-invoke.js +82 -0
  77. package/dist/skills/tools/skill-invoke.js.map +1 -0
  78. package/dist/skills/tools/skill-list.d.ts +26 -0
  79. package/dist/skills/tools/skill-list.d.ts.map +1 -0
  80. package/dist/skills/tools/skill-list.js +35 -0
  81. package/dist/skills/tools/skill-list.js.map +1 -0
  82. package/dist/web/routes/execution-trace.d.ts.map +1 -1
  83. package/dist/web/routes/execution-trace.js +16 -0
  84. package/dist/web/routes/execution-trace.js.map +1 -1
  85. package/dist/web/routes/skill-stats.d.ts +12 -0
  86. package/dist/web/routes/skill-stats.d.ts.map +1 -0
  87. package/dist/web/routes/skill-stats.js +72 -0
  88. package/dist/web/routes/skill-stats.js.map +1 -0
  89. package/dist/web/routes/status.d.ts.map +1 -1
  90. package/dist/web/routes/status.js +8 -10
  91. package/dist/web/routes/status.js.map +1 -1
  92. package/dist/web/routes/token-usage.d.ts +1 -1
  93. package/dist/web/routes/token-usage.d.ts.map +1 -1
  94. package/dist/web/routes/token-usage.js +1 -16
  95. package/dist/web/routes/token-usage.js.map +1 -1
  96. package/dist/web/routes/types.d.ts +0 -6
  97. package/dist/web/routes/types.d.ts.map +1 -1
  98. package/dist/web/routes/types.js.map +1 -1
  99. package/dist/web/server.d.ts +0 -6
  100. package/dist/web/server.d.ts.map +1 -1
  101. package/dist/web/server.js +0 -5
  102. package/dist/web/server.js.map +1 -1
  103. package/dist/web/static/assets/{AIConfig-BbwRuWzm.js → AIConfig-DiUFET_Q.js} +2 -2
  104. package/dist/web/static/assets/{AIConfig-BbwRuWzm.js.map → AIConfig-DiUFET_Q.js.map} +1 -1
  105. package/dist/web/static/assets/{Agents-FyKzsN-g.js → Agents-bNNGbQnL.js} +2 -2
  106. package/dist/web/static/assets/{Agents-FyKzsN-g.js.map → Agents-bNNGbQnL.js.map} +1 -1
  107. package/dist/web/static/assets/{Events-C2OCOKAD.js → Events-DQHP6Uaq.js} +2 -2
  108. package/dist/web/static/assets/{Events-C2OCOKAD.js.map → Events-DQHP6Uaq.js.map} +1 -1
  109. package/dist/web/static/assets/ExecutionTrace-Co8ARdg-.js +3 -0
  110. package/dist/web/static/assets/ExecutionTrace-Co8ARdg-.js.map +1 -0
  111. package/dist/web/static/assets/{Methodologies-DwYLXc8o.js → Methodologies-CXNrDXwG.js} +2 -2
  112. package/dist/web/static/assets/{Methodologies-DwYLXc8o.js.map → Methodologies-CXNrDXwG.js.map} +1 -1
  113. package/dist/web/static/assets/{Sessions-CFpFk-5I.js → Sessions-ZQSCgXyy.js} +2 -2
  114. package/dist/web/static/assets/{Sessions-CFpFk-5I.js.map → Sessions-ZQSCgXyy.js.map} +1 -1
  115. package/dist/web/static/assets/{Skills-BkbegTV1.js → Skills-C5-5zOSH.js} +2 -2
  116. package/dist/web/static/assets/{Skills-BkbegTV1.js.map → Skills-C5-5zOSH.js.map} +1 -1
  117. package/dist/web/static/assets/{index-CIRlno4E.js → index-DJK5beK6.js} +3 -3
  118. package/dist/web/static/assets/{index-CIRlno4E.js.map → index-DJK5beK6.js.map} +1 -1
  119. package/dist/web/static/assets/index-phpuytMI.css +1 -0
  120. package/dist/web/static/index.html +2 -2
  121. package/package.json +2 -2
  122. package/dist/capability/execution-manager.d.ts +0 -96
  123. package/dist/capability/execution-manager.d.ts.map +0 -1
  124. package/dist/capability/execution-manager.js +0 -260
  125. package/dist/capability/execution-manager.js.map +0 -1
  126. package/dist/capability/executor/background-executor.d.ts +0 -58
  127. package/dist/capability/executor/background-executor.d.ts.map +0 -1
  128. package/dist/capability/executor/background-executor.js +0 -322
  129. package/dist/capability/executor/background-executor.js.map +0 -1
  130. package/dist/capability/executor/foreground-executor.d.ts +0 -26
  131. package/dist/capability/executor/foreground-executor.d.ts.map +0 -1
  132. package/dist/capability/executor/foreground-executor.js +0 -82
  133. package/dist/capability/executor/foreground-executor.js.map +0 -1
  134. package/dist/capability/executor/orchestrator.d.ts +0 -38
  135. package/dist/capability/executor/orchestrator.d.ts.map +0 -1
  136. package/dist/capability/executor/orchestrator.js +0 -158
  137. package/dist/capability/executor/orchestrator.js.map +0 -1
  138. package/dist/capability/executor/stream-parser.d.ts +0 -73
  139. package/dist/capability/executor/stream-parser.d.ts.map +0 -1
  140. package/dist/capability/executor/stream-parser.js +0 -56
  141. package/dist/capability/executor/stream-parser.js.map +0 -1
  142. package/dist/capability/executor/types.d.ts +0 -44
  143. package/dist/capability/executor/types.d.ts.map +0 -1
  144. package/dist/capability/executor/types.js +0 -9
  145. package/dist/capability/executor/types.js.map +0 -1
  146. package/dist/capability/executor/worker-auth-probe.d.ts +0 -30
  147. package/dist/capability/executor/worker-auth-probe.d.ts.map +0 -1
  148. package/dist/capability/executor/worker-auth-probe.js +0 -108
  149. package/dist/capability/executor/worker-auth-probe.js.map +0 -1
  150. package/dist/capability/methodologies/bmad.yaml +0 -81
  151. package/dist/capability/methodologies/code-quality-audit.yaml +0 -26
  152. package/dist/capability/methodologies/harness-engineering.yaml +0 -75
  153. package/dist/capability/methodologies/test-coverage-scan.yaml +0 -26
  154. package/dist/capability/methodology-planner.d.ts +0 -49
  155. package/dist/capability/methodology-planner.d.ts.map +0 -1
  156. package/dist/capability/methodology-planner.js +0 -306
  157. package/dist/capability/methodology-planner.js.map +0 -1
  158. package/dist/capability/methodology-registry.d.ts +0 -32
  159. package/dist/capability/methodology-registry.d.ts.map +0 -1
  160. package/dist/capability/methodology-registry.js +0 -113
  161. package/dist/capability/methodology-registry.js.map +0 -1
  162. package/dist/daemon/handlers/methodology-formatter.d.ts +0 -16
  163. package/dist/daemon/handlers/methodology-formatter.d.ts.map +0 -1
  164. package/dist/daemon/handlers/methodology-formatter.js +0 -119
  165. package/dist/daemon/handlers/methodology-formatter.js.map +0 -1
  166. package/dist/daemon/idle-detector.d.ts +0 -35
  167. package/dist/daemon/idle-detector.d.ts.map +0 -1
  168. package/dist/daemon/idle-detector.js +0 -56
  169. package/dist/daemon/idle-detector.js.map +0 -1
  170. package/dist/daemon/idle-trigger.d.ts +0 -53
  171. package/dist/daemon/idle-trigger.d.ts.map +0 -1
  172. package/dist/daemon/idle-trigger.js +0 -153
  173. package/dist/daemon/idle-trigger.js.map +0 -1
  174. package/dist/daemon/methodology-pending-queue.d.ts +0 -33
  175. package/dist/daemon/methodology-pending-queue.d.ts.map +0 -1
  176. package/dist/daemon/methodology-pending-queue.js +0 -120
  177. package/dist/daemon/methodology-pending-queue.js.map +0 -1
  178. package/dist/web/routes/methodology.d.ts +0 -12
  179. package/dist/web/routes/methodology.d.ts.map +0 -1
  180. package/dist/web/routes/methodology.js +0 -228
  181. package/dist/web/routes/methodology.js.map +0 -1
  182. package/dist/web/static/assets/ExecutionTrace-BsWSpu2v.js +0 -3
  183. package/dist/web/static/assets/ExecutionTrace-BsWSpu2v.js.map +0 -1
  184. package/dist/web/static/assets/index-N1EByy_h.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"token-tracker.js","sourceRoot":"","sources":["../../../src/core/utils/token-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-tracker.js","sourceRoot":"","sources":["../../../src/core/utils/token-tracker.ts"],"names":[],"mappings":"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"}
@@ -5,26 +5,18 @@
5
5
  * 1. Review code changes via QualityGate
6
6
  * 2. Print terminal warnings for fail/warn
7
7
  * 3. Inject correction directive if needed
8
- * 4. Advance methodology phases when Agent is invoked
9
8
  */
10
9
  import type { ForgeEvent, HookResult } from '../../core/types.js';
11
10
  import type { QualityGate } from '../../intelligence/quality-gate.js';
12
11
  import type { SQLiteStorage } from '../../core/storage/sqlite.js';
13
12
  import type { RoutingObserver } from '../routing-observer.js';
14
- import type { MethodologyRegistry } from '../../capability/methodology-registry.js';
15
13
  export declare class PostToolUseHandler {
16
14
  private qualityGate;
17
15
  private storage;
18
16
  private observer;
19
- private methodologyRegistry;
20
17
  private tokenTracker;
21
- constructor(qualityGate: QualityGate, storage?: SQLiteStorage | null, observer?: RoutingObserver | null, methodologyRegistry?: MethodologyRegistry | null);
18
+ constructor(qualityGate: QualityGate, storage?: SQLiteStorage | null, observer?: RoutingObserver | null);
22
19
  handle(event: ForgeEvent): Promise<HookResult>;
23
- /**
24
- * Advance methodology phase when Agent (Task) tool is invoked.
25
- * Returns the next phase directive (or completion message) to inject.
26
- */
27
- private advanceMethodologyPhase;
28
20
  private recordQualityIssues;
29
21
  }
30
22
  //# sourceMappingURL=post-tool-use.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"post-tool-use.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/post-tool-use.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAOpF,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,mBAAmB;IAN7B,OAAO,CAAC,YAAY,CAA6B;gBAGvC,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,aAAa,GAAG,IAAW,EACpC,QAAQ,GAAE,eAAe,GAAG,IAAW,EACvC,mBAAmB,GAAE,mBAAmB,GAAG,IAAW;IAO1D,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAwFpD;;;OAGG;YACW,uBAAuB;IAuFrC,OAAO,CAAC,mBAAmB;CAkC5B"}
1
+ {"version":3,"file":"post-tool-use.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/post-tool-use.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IALlB,OAAO,CAAC,YAAY,CAA6B;gBAGvC,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,aAAa,GAAG,IAAW,EACpC,QAAQ,GAAE,eAAe,GAAG,IAAW;IAO3C,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAiEpD,OAAO,CAAC,mBAAmB;CAkC5B"}
@@ -5,23 +5,19 @@
5
5
  * 1. Review code changes via QualityGate
6
6
  * 2. Print terminal warnings for fail/warn
7
7
  * 3. Inject correction directive if needed
8
- * 4. Advance methodology phases when Agent is invoked
9
8
  */
10
9
  import { randomUUID } from 'node:crypto';
11
10
  import { logger } from '../../core/utils/logger.js';
12
11
  import { TokenTracker } from '../../core/utils/token-tracker.js';
13
- import { formatMethodologyPhaseDirective, formatMethodologyCompletionMessage } from './methodology-formatter.js';
14
12
  export class PostToolUseHandler {
15
13
  qualityGate;
16
14
  storage;
17
15
  observer;
18
- methodologyRegistry;
19
16
  tokenTracker = null;
20
- constructor(qualityGate, storage = null, observer = null, methodologyRegistry = null) {
17
+ constructor(qualityGate, storage = null, observer = null) {
21
18
  this.qualityGate = qualityGate;
22
19
  this.storage = storage;
23
20
  this.observer = observer;
24
- this.methodologyRegistry = methodologyRegistry;
25
21
  if (storage) {
26
22
  this.tokenTracker = new TokenTracker(storage);
27
23
  }
@@ -37,23 +33,9 @@ export class PostToolUseHandler {
37
33
  logger.debug(`[PostToolUse] observer failed: ${err}`);
38
34
  }
39
35
  }
40
- // Methodology phase advancement (NEW)
41
- let methodologyMessage = null;
42
- if (this.storage && this.methodologyRegistry && event.tool_name === 'Task') {
43
- try {
44
- methodologyMessage = await this.advanceMethodologyPhase(event);
45
- }
46
- catch (err) {
47
- logger.warn(`[PostToolUse] Methodology phase advancement failed: ${err}`);
48
- }
49
- }
50
36
  try {
51
37
  const result = this.qualityGate ? await this.qualityGate.review(event) : null;
52
38
  if (!result) {
53
- // Return methodology message if any
54
- if (methodologyMessage) {
55
- return { allow: true, additionalContext: methodologyMessage };
56
- }
57
39
  return { allow: true };
58
40
  }
59
41
  if (result.level === 'fail' || result.level === 'warn') {
@@ -74,20 +56,12 @@ export class PostToolUseHandler {
74
56
  };
75
57
  }
76
58
  if (result.directive) {
77
- // Combine methodology message with quality directive
78
- const additionalContext = methodologyMessage
79
- ? `${methodologyMessage}\n\n[Forge 质量检查] ${result.summary}`
80
- : `[Forge 质量检查] ${result.summary}`;
81
59
  return {
82
60
  allow: true,
83
61
  systemMessage: result.directive,
84
- additionalContext,
62
+ additionalContext: `[Forge 质量检查] ${result.summary}`,
85
63
  };
86
64
  }
87
- // Return methodology message if any
88
- if (methodologyMessage) {
89
- return { allow: true, additionalContext: methodologyMessage };
90
- }
91
65
  return { allow: true };
92
66
  }
93
67
  catch (err) {
@@ -95,77 +69,6 @@ export class PostToolUseHandler {
95
69
  return { allow: true };
96
70
  }
97
71
  }
98
- /**
99
- * Advance methodology phase when Agent (Task) tool is invoked.
100
- * Returns the next phase directive (or completion message) to inject.
101
- */
102
- async advanceMethodologyPhase(event) {
103
- if (!this.storage || !this.methodologyRegistry)
104
- return null;
105
- const execution = this.storage.getActiveMethodologyExecution(event.session_id);
106
- if (!execution)
107
- return null;
108
- const plan = JSON.parse(execution.plan_json);
109
- const currentPhaseIndex = execution.current_phase_index;
110
- const currentPhase = plan.phases[currentPhaseIndex];
111
- if (!currentPhase)
112
- return null;
113
- // Get the agent that was actually invoked
114
- const invokedAgent = event.tool_input?.subagent_type;
115
- // Check if invoked agent matches expected agent.
116
- // 兼容历史 plan:AI Planner 早期版本曾把 phase.id 写成 agent 名,
117
- // 所以 invokedAgent 等于 phase.agent 或 phase.id 都视为命中。
118
- const matches = invokedAgent === currentPhase.agent || invokedAgent === currentPhase.id;
119
- if (!matches) {
120
- logger.warn(`[Methodology] Phase ${currentPhaseIndex + 1} expected agent "${currentPhase.agent}" (or id "${currentPhase.id}") but got "${invokedAgent}"`);
121
- // Don't advance phase if wrong agent invoked
122
- return null;
123
- }
124
- // Mark current phase as completed
125
- const phaseExecutions = this.storage.getPhaseExecutions(execution.id);
126
- const currentPhaseExec = phaseExecutions.find(p => p.phase_index === currentPhaseIndex);
127
- if (currentPhaseExec) {
128
- this.storage.updatePhaseExecution(currentPhaseExec.id, {
129
- status: 'completed',
130
- completed_at: Date.now(),
131
- });
132
- }
133
- logger.info(`[Methodology] Phase ${currentPhaseIndex + 1} (${currentPhase.id}) completed`);
134
- // Advance to next phase
135
- const nextPhaseIndex = currentPhaseIndex + 1;
136
- const nextPhase = plan.phases[nextPhaseIndex];
137
- if (!nextPhase) {
138
- // All phases completed
139
- this.storage.updateMethodologyExecution(execution.id, {
140
- status: 'completed',
141
- completed_at: Date.now(),
142
- last_progress_at: Date.now(),
143
- });
144
- logger.info(`[Methodology] Execution ${execution.id} completed (all ${plan.phases.length} phases)`);
145
- return formatMethodologyCompletionMessage(plan);
146
- }
147
- // Update execution to point to next phase
148
- this.storage.updateMethodologyExecution(execution.id, {
149
- current_phase_index: nextPhaseIndex,
150
- last_progress_at: Date.now(),
151
- });
152
- // Create next phase execution record
153
- this.storage.createPhaseExecution({
154
- methodology_execution_id: execution.id,
155
- phase_id: nextPhase.id,
156
- phase_index: nextPhaseIndex,
157
- agent_name: nextPhase.agent,
158
- prompt: nextPhase.prompt,
159
- });
160
- // Get methodology definition for formatting
161
- const methodology = this.methodologyRegistry.get(execution.methodology_id);
162
- if (!methodology) {
163
- logger.warn(`[Methodology] Definition not found: ${execution.methodology_id}`);
164
- return null;
165
- }
166
- logger.info(`[Methodology] Advanced to Phase ${nextPhaseIndex + 1}: ${nextPhase.id} → ${nextPhase.agent}`);
167
- return formatMethodologyPhaseDirective(methodology, plan, nextPhase, nextPhaseIndex, execution.id);
168
- }
169
72
  recordQualityIssues(event, result) {
170
73
  if (!this.storage)
171
74
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"post-tool-use.js","sourceRoot":"","sources":["../../../src/daemon/handlers/post-tool-use.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"post-tool-use.js","sourceRoot":"","sources":["../../../src/daemon/handlers/post-tool-use.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,8 @@ import type { ResumeManager } from '../../claudemd/resume-manager.js';
12
12
  import type { RoutingObserver } from '../routing-observer.js';
13
13
  import type { TaskSegmenter } from '../../intelligence/task-segmenter.js';
14
14
  import type { SQLiteStorage } from '../../core/storage/sqlite.js';
15
- import type { MethodologyRegistry } from '../../capability/methodology-registry.js';
15
+ import type { InvocationGuard } from '../../skills/invocation-guard.js';
16
+ import type { ExecutionDocBuilder } from '../../intelligence/execution-doc-builder.js';
16
17
  export declare class StopHandler {
17
18
  private distiller;
18
19
  private exporter;
@@ -20,20 +21,9 @@ export declare class StopHandler {
20
21
  private observer;
21
22
  private taskSegmenter;
22
23
  private storage;
23
- private methodologyRegistry;
24
- constructor(distiller: Distiller, exporter: HistoryExporter, resume?: ResumeManager | null, observer?: RoutingObserver | null, taskSegmenter?: TaskSegmenter | null, storage?: SQLiteStorage | null, methodologyRegistry?: MethodologyRegistry | null);
24
+ private invocationGuard;
25
+ private executionDocBuilder;
26
+ constructor(distiller: Distiller, exporter: HistoryExporter, resume?: ResumeManager | null, observer?: RoutingObserver | null, taskSegmenter?: TaskSegmenter | null, storage?: SQLiteStorage | null, invocationGuard?: InvocationGuard | null, executionDocBuilder?: ExecutionDocBuilder | null);
25
27
  handle(event: ForgeEvent): Promise<HookResult>;
26
- /**
27
- * Session 结束时清理当前 session 上"从没推进过"的 methodology:
28
- * 只处理 current_phase_index === 0 且 phase 0 状态还是 pending/running 的
29
- * execution —— 也就是"创建了但 Claude 从没听指令"的。已经推进到 phase 1+
30
- * 或 phase 0 已 completed 的保留,由 checkMethodologyStall 的 pending
31
- * 队列机制接管(用户 resume 时继续)。
32
- *
33
- * 为防御 legacy 数据(可能有多个 running 行漏出排他检查),这里遍历
34
- * 所有 running 行,而不是只用 getActiveMethodologyExecution 取最新一条。
35
- */
36
- private cancelZeroProgressMethodologies;
37
- private checkMethodologyStall;
38
28
  }
39
29
  //# sourceMappingURL=stop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/stop.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAMpF,qBAAa,WAAW;IAEpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,mBAAmB;gBANnB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,eAAe,EACzB,MAAM,GAAE,aAAa,GAAG,IAAW,EACnC,QAAQ,GAAE,eAAe,GAAG,IAAW,EACvC,aAAa,GAAE,aAAa,GAAG,IAAW,EAC1C,OAAO,GAAE,aAAa,GAAG,IAAW,EACpC,mBAAmB,GAAE,mBAAmB,GAAG,IAAW;IAG1D,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAyDpD;;;;;;;;;OASG;IACH,OAAO,CAAC,+BAA+B;IAqCvC,OAAO,CAAC,qBAAqB;CAuC9B"}
1
+ {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/stop.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAGvF,qBAAa,WAAW;IAEpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,mBAAmB;gBAPnB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,eAAe,EACzB,MAAM,GAAE,aAAa,GAAG,IAAW,EACnC,QAAQ,GAAE,eAAe,GAAG,IAAW,EACvC,aAAa,GAAE,aAAa,GAAG,IAAW,EAC1C,OAAO,GAAE,aAAa,GAAG,IAAW,EACpC,eAAe,GAAE,eAAe,GAAG,IAAW,EAC9C,mBAAmB,GAAE,mBAAmB,GAAG,IAAW;IAG1D,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAoErD"}
@@ -6,8 +6,6 @@
6
6
  * 2. Export session history to .claude-forge/history/
7
7
  */
8
8
  import { logger } from '../../core/utils/logger.js';
9
- import { getMethodologyPendingQueue } from '../methodology-pending-queue.js';
10
- import { formatMethodologyPhaseDirective } from './methodology-formatter.js';
11
9
  export class StopHandler {
12
10
  distiller;
13
11
  exporter;
@@ -15,15 +13,17 @@ export class StopHandler {
15
13
  observer;
16
14
  taskSegmenter;
17
15
  storage;
18
- methodologyRegistry;
19
- constructor(distiller, exporter, resume = null, observer = null, taskSegmenter = null, storage = null, methodologyRegistry = null) {
16
+ invocationGuard;
17
+ executionDocBuilder;
18
+ constructor(distiller, exporter, resume = null, observer = null, taskSegmenter = null, storage = null, invocationGuard = null, executionDocBuilder = null) {
20
19
  this.distiller = distiller;
21
20
  this.exporter = exporter;
22
21
  this.resume = resume;
23
22
  this.observer = observer;
24
23
  this.taskSegmenter = taskSegmenter;
25
24
  this.storage = storage;
26
- this.methodologyRegistry = methodologyRegistry;
25
+ this.invocationGuard = invocationGuard;
26
+ this.executionDocBuilder = executionDocBuilder;
27
27
  }
28
28
  async handle(event) {
29
29
  // Flush any pending routing observation (obeyed=NULL if still unset,
@@ -47,15 +47,6 @@ export class StopHandler {
47
47
  logger.debug(`[Stop] task completion failed: ${err}`);
48
48
  }
49
49
  }
50
- // 1a. Methodology 前台兜底:若当前 session 有 running execution 且
51
- // 当前阶段没推进,把该阶段指令放入 pending 队列,下一轮
52
- // UserPromptSubmit 会自动再注入一次(解决 3 小时 0% 的体验问题)。
53
- //
54
- // 先做"零推进即取消"清理:session 都结束了还停在 phase 0 未启动的
55
- // execution,保留只会污染后续 session 的排他检查。已推进一轮以上的
56
- // 仍保留(用户 resume 可能继续),由 pending 队列负责下次恢复。
57
- this.cancelZeroProgressMethodologies(event.session_id);
58
- this.checkMethodologyStall(event.session_id);
59
50
  // 2. Save resume info
60
51
  if (this.resume) {
61
52
  const resumeContent = this.resume.generate(event.session_id, event.project_path);
@@ -67,95 +58,36 @@ export class StopHandler {
67
58
  // 2. Distill session
68
59
  logger.info(`[Stop] Distilling session ${event.session_id}`);
69
60
  await this.distiller.distill(event.session_id, event.project_path);
61
+ // 2a. 生成 Agent/Skill 执行文档(异步 tail,不阻塞 hook)
62
+ if (this.executionDocBuilder) {
63
+ // setImmediate 让 hook 立刻返回,不等文档生成完
64
+ setImmediate(async () => {
65
+ try {
66
+ await this.executionDocBuilder.build(event.session_id, event.project_path);
67
+ }
68
+ catch (err) {
69
+ logger.warn(`[Stop] ExecutionDocBuilder failed: ${err}`);
70
+ }
71
+ });
72
+ }
70
73
  // 3. Export history
71
74
  logger.info(`[Stop] Exporting history for session ${event.session_id}`);
72
75
  await this.exporter.export(event);
73
- return { allow: true };
74
- }
75
- catch (err) {
76
- logger.warn(`[Stop] Handler failed: ${err}`);
77
- return { allow: true };
78
- }
79
- }
80
- /**
81
- * Session 结束时清理当前 session 上"从没推进过"的 methodology:
82
- * 只处理 current_phase_index === 0 且 phase 0 状态还是 pending/running 的
83
- * execution —— 也就是"创建了但 Claude 从没听指令"的。已经推进到 phase 1+
84
- * 或 phase 0 已 completed 的保留,由 checkMethodologyStall 的 pending
85
- * 队列机制接管(用户 resume 时继续)。
86
- *
87
- * 为防御 legacy 数据(可能有多个 running 行漏出排他检查),这里遍历
88
- * 所有 running 行,而不是只用 getActiveMethodologyExecution 取最新一条。
89
- */
90
- cancelZeroProgressMethodologies(session_id) {
91
- if (!this.storage)
92
- return;
93
- try {
94
- const allRunning = this.storage
95
- .listRunningForegroundExecutions()
96
- .filter((row) => row.session_id === session_id);
97
- if (allRunning.length === 0)
98
- return;
99
- const now = Date.now();
100
- for (const exec of allRunning) {
101
- const idx = exec.current_phase_index ?? 0;
102
- if (idx !== 0)
103
- continue; // 已推进过至少一轮,保留给下次 resume
104
- const phaseExecs = this.storage.getPhaseExecutions(exec.id);
105
- const phase0 = phaseExecs.find((p) => p.phase_index === 0);
106
- const status = phase0?.status;
107
- // phase 0 不存在或仍处于 pending/running —— 等同于"从没推进"
108
- const neverProgressed = !phase0 || status === 'pending' || status === 'running';
109
- if (!neverProgressed)
110
- continue;
76
+ // 4. Clear skill invocation guard for this session
77
+ if (this.invocationGuard) {
111
78
  try {
112
- this.storage.updateMethodologyExecution(exec.id, {
113
- status: 'cancelled',
114
- completed_at: now,
115
- });
116
- logger.info(`[Stop] Cancelled zero-progress methodology execution=${exec.id} session=${session_id} (phase 0 ${status ?? 'missing'})`);
79
+ this.invocationGuard.clear(event.session_id);
80
+ logger.debug(`[Stop] InvocationGuard cleared for session ${event.session_id}`);
117
81
  }
118
82
  catch (err) {
119
- logger.warn(`[Stop] Failed to cancel zero-progress execution=${exec.id}: ${err}`);
83
+ logger.debug(`[Stop] InvocationGuard clear failed: ${err}`);
120
84
  }
121
85
  }
86
+ return { allow: true };
122
87
  }
123
88
  catch (err) {
124
- logger.debug(`[Stop] zero-progress cleanup failed: ${err}`);
125
- }
126
- }
127
- checkMethodologyStall(session_id) {
128
- if (!this.storage || !this.methodologyRegistry)
129
- return;
130
- try {
131
- const execution = this.storage.getActiveMethodologyExecution(session_id);
132
- if (!execution)
133
- return;
134
- const plan = JSON.parse(execution.plan_json);
135
- const idx = execution.current_phase_index ?? 0;
136
- const phase = plan.phases[idx];
137
- if (!phase)
138
- return;
139
- const phaseExecs = this.storage.getPhaseExecutions(execution.id);
140
- const currentExec = phaseExecs.find(p => p.phase_index === idx);
141
- if (currentExec?.status === 'completed')
142
- return;
143
- const methodology = this.methodologyRegistry.get(execution.methodology_id);
144
- if (!methodology)
145
- return;
146
- const directive = formatMethodologyPhaseDirective(methodology, plan, phase, idx, execution.id);
147
- getMethodologyPendingQueue().enqueue({
148
- session_id,
149
- execution_id: execution.id,
150
- phase_index: idx,
151
- directive,
152
- enqueued_at: Date.now(),
153
- reason: 'stop-fallback',
154
- });
155
- logger.info(`[Stop] Methodology phase ${idx + 1}/${plan.phases.length} not progressed — queued directive for next UserPromptSubmit`);
156
- }
157
- catch (err) {
158
- logger.debug(`[Stop] methodology stall check failed: ${err}`);
89
+ logger.warn(`[Stop] Handler failed: ${err}`);
90
+ return { allow: true };
159
91
  }
160
92
  }
161
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/daemon/handlers/stop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/daemon/handlers/stop.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,MAAM,OAAO,WAAW;IAEZ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IARV,YACU,SAAoB,EACpB,QAAyB,EACzB,SAA+B,IAAI,EACnC,WAAmC,IAAI,EACvC,gBAAsC,IAAI,EAC1C,UAAgC,IAAI,EACpC,kBAA0C,IAAI,EAC9C,sBAAkD,IAAI;QAPtD,cAAS,GAAT,SAAS,CAAW;QACpB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,WAAM,GAAN,MAAM,CAA6B;QACnC,aAAQ,GAAR,QAAQ,CAA+B;QACvC,kBAAa,GAAb,aAAa,CAA6B;QAC1C,YAAO,GAAP,OAAO,CAA6B;QACpC,oBAAe,GAAf,eAAe,CAA+B;QAC9C,wBAAmB,GAAnB,mBAAmB,CAAmC;IAC7D,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,KAAiB;QAC5B,qEAAqE;QACrE,8DAA8D;QAC9D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,QAAQ,GACZ,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;gBACxE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,sFAAsF;YACtF,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACH,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC5E,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;YAED,sBAAsB;YACtB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;gBACjF,IAAI,aAAa,EAAE,CAAC;oBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;oBACpD,MAAM,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YAED,qBAAqB;YACrB,MAAM,CAAC,IAAI,CAAC,6BAA6B,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YAC7D,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YAEnE,4CAA4C;YAC5C,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC7B,mCAAmC;gBACnC,YAAY,CAAC,KAAK,IAAI,EAAE;oBACtB,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,mBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;oBAC9E,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,CAAC,IAAI,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,oBAAoB;YACpB,MAAM,CAAC,IAAI,CAAC,wCAAwC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YACxE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAElC,mDAAmD;YACnD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAC7C,MAAM,CAAC,KAAK,CAAC,8CAA8C,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBACjF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,wCAAwC,GAAG,EAAE,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;CACF"}
@@ -18,8 +18,7 @@ import type { ExperimentRouter } from '../../engine/experiment-router.js';
18
18
  import type { SQLiteStorage } from '../../core/storage/sqlite.js';
19
19
  import type { RoutingObserver } from '../routing-observer.js';
20
20
  import type { AgentRegistry } from '../../agents/registry.js';
21
- import type { MethodologyRegistry } from '../../capability/methodology-registry.js';
22
- import type { MethodologyPlanner } from '../../capability/methodology-planner.js';
21
+ import type { SkillRegistry } from '../../skills/registry.js';
23
22
  export declare const INJECTION_VERSION = "v1-declarative-2026-05-08";
24
23
  export declare class UserPromptHandler {
25
24
  private classifier;
@@ -29,11 +28,10 @@ export declare class UserPromptHandler {
29
28
  private agents;
30
29
  private storage;
31
30
  private observer;
32
- private methodologyRegistry;
33
- private methodologyPlanner;
31
+ private skillRegistry;
34
32
  private resumeInjected;
35
33
  private conventionInjected;
36
- constructor(classifier: IntentClassifier, resume?: ResumeManager | null, conventionExtractor?: ConventionExtractor | null, router?: ExperimentRouter | null, agents?: AgentRegistry | null, storage?: SQLiteStorage | null, observer?: RoutingObserver | null, methodologyRegistry?: MethodologyRegistry | null, methodologyPlanner?: MethodologyPlanner | null);
34
+ constructor(classifier: IntentClassifier, resume?: ResumeManager | null, conventionExtractor?: ConventionExtractor | null, router?: ExperimentRouter | null, agents?: AgentRegistry | null, storage?: SQLiteStorage | null, observer?: RoutingObserver | null, skillRegistry?: SkillRegistry | null);
37
35
  handle(event: ForgeEvent): Promise<HookResult>;
38
36
  }
39
37
  //# sourceMappingURL=user-prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-prompt.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/user-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,mCAAmC,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAMlF,eAAO,MAAM,iBAAiB,8BAA8B,CAAC;AAE7D,qBAAa,iBAAiB;IAK1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,kBAAkB;IAZ5B,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,kBAAkB,CAAqB;gBAGrC,UAAU,EAAE,gBAAgB,EAC5B,MAAM,GAAE,aAAa,GAAG,IAAW,EACnC,mBAAmB,GAAE,mBAAmB,GAAG,IAAW,EACtD,MAAM,GAAE,gBAAgB,GAAG,IAAW,EACtC,MAAM,GAAE,aAAa,GAAG,IAAW,EACnC,OAAO,GAAE,aAAa,GAAG,IAAW,EACpC,QAAQ,GAAE,eAAe,GAAG,IAAW,EACvC,mBAAmB,GAAE,mBAAmB,GAAG,IAAW,EACtD,kBAAkB,GAAE,kBAAkB,GAAG,IAAW;IAGxD,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAgQrD"}
1
+ {"version":3,"file":"user-prompt.d.ts","sourceRoot":"","sources":["../../../src/daemon/handlers/user-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,mCAAmC,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,eAAO,MAAM,iBAAiB,8BAA8B,CAAC;AAE7D,qBAAa,iBAAiB;IAK1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IAXvB,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,kBAAkB,CAAqB;gBAGrC,UAAU,EAAE,gBAAgB,EAC5B,MAAM,GAAE,aAAa,GAAG,IAAW,EACnC,mBAAmB,GAAE,mBAAmB,GAAG,IAAW,EACtD,MAAM,GAAE,gBAAgB,GAAG,IAAW,EACtC,MAAM,GAAE,aAAa,GAAG,IAAW,EACnC,OAAO,GAAE,aAAa,GAAG,IAAW,EACpC,QAAQ,GAAE,eAAe,GAAG,IAAW,EACvC,aAAa,GAAE,aAAa,GAAG,IAAW;IAG9C,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAkKrD"}