dino-spec 17.4.3 → 17.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 (277) hide show
  1. package/README.md +16 -1
  2. package/dist/commands/init.d.ts.map +1 -1
  3. package/dist/commands/init.js +10 -0
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/core/agents/__tests__/confidence-gate.test.d.ts +5 -0
  6. package/dist/core/agents/__tests__/confidence-gate.test.d.ts.map +1 -0
  7. package/dist/core/agents/__tests__/confidence-gate.test.js +329 -0
  8. package/dist/core/agents/__tests__/confidence-gate.test.js.map +1 -0
  9. package/dist/core/agents/__tests__/gap-detector.test.d.ts +5 -0
  10. package/dist/core/agents/__tests__/gap-detector.test.d.ts.map +1 -0
  11. package/dist/core/agents/__tests__/gap-detector.test.js +609 -0
  12. package/dist/core/agents/__tests__/gap-detector.test.js.map +1 -0
  13. package/dist/core/agents/__tests__/learning-loop.test.d.ts +5 -0
  14. package/dist/core/agents/__tests__/learning-loop.test.d.ts.map +1 -0
  15. package/dist/core/agents/__tests__/learning-loop.test.js +663 -0
  16. package/dist/core/agents/__tests__/learning-loop.test.js.map +1 -0
  17. package/dist/core/agents/__tests__/parallel-executor.test.d.ts +5 -0
  18. package/dist/core/agents/__tests__/parallel-executor.test.d.ts.map +1 -0
  19. package/dist/core/agents/__tests__/parallel-executor.test.js +610 -0
  20. package/dist/core/agents/__tests__/parallel-executor.test.js.map +1 -0
  21. package/dist/core/agents/__tests__/research-validator.test.js +5 -5
  22. package/dist/core/agents/__tests__/research-validator.test.js.map +1 -1
  23. package/dist/core/agents/__tests__/skill-creator.test.d.ts +5 -0
  24. package/dist/core/agents/__tests__/skill-creator.test.d.ts.map +1 -0
  25. package/dist/core/agents/__tests__/skill-creator.test.js +443 -0
  26. package/dist/core/agents/__tests__/skill-creator.test.js.map +1 -0
  27. package/dist/core/agents/__tests__/state-persistence.test.d.ts +2 -0
  28. package/dist/core/agents/__tests__/state-persistence.test.d.ts.map +1 -0
  29. package/dist/core/agents/__tests__/state-persistence.test.js +270 -0
  30. package/dist/core/agents/__tests__/state-persistence.test.js.map +1 -0
  31. package/dist/core/agents/__tests__/validation-cache.test.d.ts +2 -0
  32. package/dist/core/agents/__tests__/validation-cache.test.d.ts.map +1 -0
  33. package/dist/core/agents/__tests__/validation-cache.test.js +181 -0
  34. package/dist/core/agents/__tests__/validation-cache.test.js.map +1 -0
  35. package/dist/core/agents/ambiguity-resolver.d.ts +14 -1
  36. package/dist/core/agents/ambiguity-resolver.d.ts.map +1 -1
  37. package/dist/core/agents/ambiguity-resolver.js +24 -2
  38. package/dist/core/agents/ambiguity-resolver.js.map +1 -1
  39. package/dist/core/agents/blackboard.d.ts +22 -3
  40. package/dist/core/agents/blackboard.d.ts.map +1 -1
  41. package/dist/core/agents/blackboard.js +52 -2
  42. package/dist/core/agents/blackboard.js.map +1 -1
  43. package/dist/core/agents/circuit-breaker.d.ts +79 -1
  44. package/dist/core/agents/circuit-breaker.d.ts.map +1 -1
  45. package/dist/core/agents/circuit-breaker.js +175 -1
  46. package/dist/core/agents/circuit-breaker.js.map +1 -1
  47. package/dist/core/agents/clarification-phase.d.ts +128 -0
  48. package/dist/core/agents/clarification-phase.d.ts.map +1 -0
  49. package/dist/core/agents/clarification-phase.js +375 -0
  50. package/dist/core/agents/clarification-phase.js.map +1 -0
  51. package/dist/core/agents/confidence-gate.d.ts +133 -4
  52. package/dist/core/agents/confidence-gate.d.ts.map +1 -1
  53. package/dist/core/agents/confidence-gate.js +376 -9
  54. package/dist/core/agents/confidence-gate.js.map +1 -1
  55. package/dist/core/agents/correction-tracker.d.ts +197 -0
  56. package/dist/core/agents/correction-tracker.d.ts.map +1 -0
  57. package/dist/core/agents/correction-tracker.js +366 -0
  58. package/dist/core/agents/correction-tracker.js.map +1 -0
  59. package/dist/core/agents/dependency-graph.d.ts +193 -0
  60. package/dist/core/agents/dependency-graph.d.ts.map +1 -0
  61. package/dist/core/agents/dependency-graph.js +462 -0
  62. package/dist/core/agents/dependency-graph.js.map +1 -0
  63. package/dist/core/agents/gap-detector.d.ts +277 -0
  64. package/dist/core/agents/gap-detector.d.ts.map +1 -0
  65. package/dist/core/agents/gap-detector.js +540 -0
  66. package/dist/core/agents/gap-detector.js.map +1 -0
  67. package/dist/core/agents/index.d.ts +14 -1
  68. package/dist/core/agents/index.d.ts.map +1 -1
  69. package/dist/core/agents/index.js +26 -1
  70. package/dist/core/agents/index.js.map +1 -1
  71. package/dist/core/agents/message-protocol.d.ts +13 -2
  72. package/dist/core/agents/message-protocol.d.ts.map +1 -1
  73. package/dist/core/agents/message-protocol.js +20 -1
  74. package/dist/core/agents/message-protocol.js.map +1 -1
  75. package/dist/core/agents/parallel-executor.d.ts +182 -0
  76. package/dist/core/agents/parallel-executor.d.ts.map +1 -0
  77. package/dist/core/agents/parallel-executor.js +474 -0
  78. package/dist/core/agents/parallel-executor.js.map +1 -0
  79. package/dist/core/agents/pattern-detector.d.ts +157 -0
  80. package/dist/core/agents/pattern-detector.d.ts.map +1 -0
  81. package/dist/core/agents/pattern-detector.js +370 -0
  82. package/dist/core/agents/pattern-detector.js.map +1 -0
  83. package/dist/core/agents/registry-client.d.ts +6 -0
  84. package/dist/core/agents/registry-client.d.ts.map +1 -1
  85. package/dist/core/agents/registry-client.js +3 -0
  86. package/dist/core/agents/registry-client.js.map +1 -1
  87. package/dist/core/agents/research-phase.d.ts +114 -0
  88. package/dist/core/agents/research-phase.d.ts.map +1 -0
  89. package/dist/core/agents/research-phase.js +355 -0
  90. package/dist/core/agents/research-phase.js.map +1 -0
  91. package/dist/core/agents/research-validator.d.ts +13 -2
  92. package/dist/core/agents/research-validator.d.ts.map +1 -1
  93. package/dist/core/agents/research-validator.js +63 -31
  94. package/dist/core/agents/research-validator.js.map +1 -1
  95. package/dist/core/agents/skill-creator.d.ts +174 -0
  96. package/dist/core/agents/skill-creator.d.ts.map +1 -0
  97. package/dist/core/agents/skill-creator.js +570 -0
  98. package/dist/core/agents/skill-creator.js.map +1 -0
  99. package/dist/core/agents/state-persistence.d.ts +184 -0
  100. package/dist/core/agents/state-persistence.d.ts.map +1 -0
  101. package/dist/core/agents/state-persistence.js +394 -0
  102. package/dist/core/agents/state-persistence.js.map +1 -0
  103. package/dist/core/agents/validation-cache.d.ts +122 -0
  104. package/dist/core/agents/validation-cache.d.ts.map +1 -0
  105. package/dist/core/agents/validation-cache.js +280 -0
  106. package/dist/core/agents/validation-cache.js.map +1 -0
  107. package/dist/core/agents/validators/__tests__/validators.test.d.ts +5 -0
  108. package/dist/core/agents/validators/__tests__/validators.test.d.ts.map +1 -0
  109. package/dist/core/agents/validators/__tests__/validators.test.js +321 -0
  110. package/dist/core/agents/validators/__tests__/validators.test.js.map +1 -0
  111. package/dist/core/agents/validators/base-validator.d.ts +191 -0
  112. package/dist/core/agents/validators/base-validator.d.ts.map +1 -0
  113. package/dist/core/agents/validators/base-validator.js +192 -0
  114. package/dist/core/agents/validators/base-validator.js.map +1 -0
  115. package/dist/core/agents/validators/index.d.ts +7 -0
  116. package/dist/core/agents/validators/index.d.ts.map +1 -0
  117. package/dist/core/agents/validators/index.js +7 -0
  118. package/dist/core/agents/validators/index.js.map +1 -0
  119. package/dist/core/agents/validators/npm-validator.d.ts +50 -0
  120. package/dist/core/agents/validators/npm-validator.d.ts.map +1 -0
  121. package/dist/core/agents/validators/npm-validator.js +211 -0
  122. package/dist/core/agents/validators/npm-validator.js.map +1 -0
  123. package/dist/core/agents/validators/pip-validator.d.ts +49 -0
  124. package/dist/core/agents/validators/pip-validator.d.ts.map +1 -0
  125. package/dist/core/agents/validators/pip-validator.js +191 -0
  126. package/dist/core/agents/validators/pip-validator.js.map +1 -0
  127. package/dist/core/agents/validators/validator-registry.d.ts +122 -0
  128. package/dist/core/agents/validators/validator-registry.d.ts.map +1 -0
  129. package/dist/core/agents/validators/validator-registry.js +321 -0
  130. package/dist/core/agents/validators/validator-registry.js.map +1 -0
  131. package/dist/core/context/auto-injection-engine.d.ts +7 -1
  132. package/dist/core/context/auto-injection-engine.d.ts.map +1 -1
  133. package/dist/core/context/auto-injection-engine.js +46 -1
  134. package/dist/core/context/auto-injection-engine.js.map +1 -1
  135. package/dist/core/context-repl/types.d.ts +4 -4
  136. package/dist/core/memory/index.d.ts +1 -0
  137. package/dist/core/memory/index.d.ts.map +1 -1
  138. package/dist/core/memory/index.js +2 -0
  139. package/dist/core/memory/index.js.map +1 -1
  140. package/dist/core/memory/learning-store.d.ts +222 -0
  141. package/dist/core/memory/learning-store.d.ts.map +1 -0
  142. package/dist/core/memory/learning-store.js +477 -0
  143. package/dist/core/memory/learning-store.js.map +1 -0
  144. package/dist/core/ralph/__tests__/prd-generator-session-context.test.d.ts +7 -0
  145. package/dist/core/ralph/__tests__/prd-generator-session-context.test.d.ts.map +1 -0
  146. package/dist/core/ralph/__tests__/prd-generator-session-context.test.js +143 -0
  147. package/dist/core/ralph/__tests__/prd-generator-session-context.test.js.map +1 -0
  148. package/dist/core/ralph/index.d.ts +3 -3
  149. package/dist/core/ralph/index.d.ts.map +1 -1
  150. package/dist/core/ralph/index.js +2 -2
  151. package/dist/core/ralph/index.js.map +1 -1
  152. package/dist/core/ralph/prd-generator.d.ts +18 -3
  153. package/dist/core/ralph/prd-generator.d.ts.map +1 -1
  154. package/dist/core/ralph/prd-generator.js +33 -11
  155. package/dist/core/ralph/prd-generator.js.map +1 -1
  156. package/dist/core/ralph/progress-tracker.d.ts.map +1 -1
  157. package/dist/core/ralph/progress-tracker.js +2 -1
  158. package/dist/core/ralph/progress-tracker.js.map +1 -1
  159. package/dist/core/ralph/sub-agent-spawner.d.ts +4 -2
  160. package/dist/core/ralph/sub-agent-spawner.d.ts.map +1 -1
  161. package/dist/core/ralph/sub-agent-spawner.js +48 -3
  162. package/dist/core/ralph/sub-agent-spawner.js.map +1 -1
  163. package/dist/core/ralph/task-integration.d.ts.map +1 -1
  164. package/dist/core/ralph/task-integration.js +6 -3
  165. package/dist/core/ralph/task-integration.js.map +1 -1
  166. package/dist/core/ralph/types.d.ts +62 -3
  167. package/dist/core/ralph/types.d.ts.map +1 -1
  168. package/dist/core/ralph/types.js.map +1 -1
  169. package/dist/core/recommendations/recommendation-engine.d.ts +6 -0
  170. package/dist/core/recommendations/recommendation-engine.d.ts.map +1 -1
  171. package/dist/core/recommendations/recommendation-engine.js.map +1 -1
  172. package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts +5 -0
  173. package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts.map +1 -0
  174. package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js +401 -0
  175. package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js.map +1 -0
  176. package/dist/core/spec-analyzer/ambiguity-detector.d.ts +99 -0
  177. package/dist/core/spec-analyzer/ambiguity-detector.d.ts.map +1 -0
  178. package/dist/core/spec-analyzer/ambiguity-detector.js +250 -0
  179. package/dist/core/spec-analyzer/ambiguity-detector.js.map +1 -0
  180. package/dist/core/spec-analyzer/clarification-generator.d.ts +76 -0
  181. package/dist/core/spec-analyzer/clarification-generator.d.ts.map +1 -0
  182. package/dist/core/spec-analyzer/clarification-generator.js +257 -0
  183. package/dist/core/spec-analyzer/clarification-generator.js.map +1 -0
  184. package/dist/core/spec-analyzer/index.d.ts +22 -2
  185. package/dist/core/spec-analyzer/index.d.ts.map +1 -1
  186. package/dist/core/spec-analyzer/index.js +21 -3
  187. package/dist/core/spec-analyzer/index.js.map +1 -1
  188. package/dist/core/spec-analyzer/patterns.d.ts +73 -0
  189. package/dist/core/spec-analyzer/patterns.d.ts.map +1 -0
  190. package/dist/core/spec-analyzer/patterns.js +412 -0
  191. package/dist/core/spec-analyzer/patterns.js.map +1 -0
  192. package/dist/hooks/__tests__/dynamic-generator.test.d.ts +5 -0
  193. package/dist/hooks/__tests__/dynamic-generator.test.d.ts.map +1 -0
  194. package/dist/hooks/__tests__/dynamic-generator.test.js +425 -0
  195. package/dist/hooks/__tests__/dynamic-generator.test.js.map +1 -0
  196. package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts +5 -0
  197. package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts.map +1 -0
  198. package/dist/hooks/__tests__/hook-agent-bridge.test.js +315 -0
  199. package/dist/hooks/__tests__/hook-agent-bridge.test.js.map +1 -0
  200. package/dist/hooks/dynamic-generator.d.ts +158 -0
  201. package/dist/hooks/dynamic-generator.d.ts.map +1 -0
  202. package/dist/hooks/dynamic-generator.js +448 -0
  203. package/dist/hooks/dynamic-generator.js.map +1 -0
  204. package/dist/hooks/hook-agent-bridge.d.ts +252 -0
  205. package/dist/hooks/hook-agent-bridge.d.ts.map +1 -0
  206. package/dist/hooks/hook-agent-bridge.js +489 -0
  207. package/dist/hooks/hook-agent-bridge.js.map +1 -0
  208. package/dist/hooks/index.d.ts +3 -1
  209. package/dist/hooks/index.d.ts.map +1 -1
  210. package/dist/hooks/index.js +5 -1
  211. package/dist/hooks/index.js.map +1 -1
  212. package/dist/mcp/tool-catalog.d.ts.map +1 -1
  213. package/dist/mcp/tool-catalog.js +47 -0
  214. package/dist/mcp/tool-catalog.js.map +1 -1
  215. package/dist/mcp/tool-tiers.d.ts.map +1 -1
  216. package/dist/mcp/tool-tiers.js +4 -0
  217. package/dist/mcp/tool-tiers.js.map +1 -1
  218. package/dist/mcp/tools/auto-inject.d.ts +4 -0
  219. package/dist/mcp/tools/auto-inject.d.ts.map +1 -1
  220. package/dist/mcp/tools/auto-inject.js +13 -4
  221. package/dist/mcp/tools/auto-inject.js.map +1 -1
  222. package/dist/mcp/tools/chunking.d.ts +3 -0
  223. package/dist/mcp/tools/chunking.d.ts.map +1 -1
  224. package/dist/mcp/tools/chunking.js +10 -4
  225. package/dist/mcp/tools/chunking.js.map +1 -1
  226. package/dist/mcp/tools/embeddings.d.ts +4 -0
  227. package/dist/mcp/tools/embeddings.d.ts.map +1 -1
  228. package/dist/mcp/tools/embeddings.js +16 -6
  229. package/dist/mcp/tools/embeddings.js.map +1 -1
  230. package/dist/mcp/tools/index.d.ts +2 -1
  231. package/dist/mcp/tools/index.d.ts.map +1 -1
  232. package/dist/mcp/tools/index.js +15 -1
  233. package/dist/mcp/tools/index.js.map +1 -1
  234. package/dist/mcp/tools/knowledge-graph.d.ts +3 -0
  235. package/dist/mcp/tools/knowledge-graph.d.ts.map +1 -1
  236. package/dist/mcp/tools/knowledge-graph.js +19 -8
  237. package/dist/mcp/tools/knowledge-graph.js.map +1 -1
  238. package/dist/mcp/tools/lazy-context.d.ts +2 -0
  239. package/dist/mcp/tools/lazy-context.d.ts.map +1 -1
  240. package/dist/mcp/tools/lazy-context.js +10 -4
  241. package/dist/mcp/tools/lazy-context.js.map +1 -1
  242. package/dist/mcp/tools/learning-store.d.ts +30 -0
  243. package/dist/mcp/tools/learning-store.d.ts.map +1 -0
  244. package/dist/mcp/tools/learning-store.js +286 -0
  245. package/dist/mcp/tools/learning-store.js.map +1 -0
  246. package/dist/mcp/tools/memory-decay.d.ts.map +1 -1
  247. package/dist/mcp/tools/memory-decay.js +4 -2
  248. package/dist/mcp/tools/memory-decay.js.map +1 -1
  249. package/dist/mcp/tools/prefetch.d.ts +4 -1
  250. package/dist/mcp/tools/prefetch.d.ts.map +1 -1
  251. package/dist/mcp/tools/prefetch.js +18 -7
  252. package/dist/mcp/tools/prefetch.js.map +1 -1
  253. package/dist/mcp/tools/ralph.d.ts +2 -0
  254. package/dist/mcp/tools/ralph.d.ts.map +1 -1
  255. package/dist/mcp/tools/ralph.js +96 -6
  256. package/dist/mcp/tools/ralph.js.map +1 -1
  257. package/dist/mcp/tools/recommendations.d.ts +2 -0
  258. package/dist/mcp/tools/recommendations.d.ts.map +1 -1
  259. package/dist/mcp/tools/recommendations.js +13 -4
  260. package/dist/mcp/tools/recommendations.js.map +1 -1
  261. package/dist/mcp/tools/retrieval.d.ts +4 -0
  262. package/dist/mcp/tools/retrieval.d.ts.map +1 -1
  263. package/dist/mcp/tools/retrieval.js +25 -10
  264. package/dist/mcp/tools/retrieval.js.map +1 -1
  265. package/dist/mcp/tools/spec-feedback.d.ts +2 -0
  266. package/dist/mcp/tools/spec-feedback.d.ts.map +1 -1
  267. package/dist/mcp/tools/spec-feedback.js +33 -16
  268. package/dist/mcp/tools/spec-feedback.js.map +1 -1
  269. package/dist/mcp/utils/index.d.ts +1 -0
  270. package/dist/mcp/utils/index.d.ts.map +1 -1
  271. package/dist/mcp/utils/index.js +2 -0
  272. package/dist/mcp/utils/index.js.map +1 -1
  273. package/dist/mcp/utils/session-context.d.ts +108 -0
  274. package/dist/mcp/utils/session-context.d.ts.map +1 -0
  275. package/dist/mcp/utils/session-context.js +157 -0
  276. package/dist/mcp/utils/session-context.js.map +1 -0
  277. package/package.json +1 -1
@@ -0,0 +1,489 @@
1
+ /**
2
+ * Hook-Agent Bridge - v17.5.0
3
+ *
4
+ * Enables hybrid communication between hooks (fast, deterministic) and
5
+ * agents (reasoning, complex). Implements decision matrix for when to
6
+ * escalate from hook to agent.
7
+ *
8
+ * Features:
9
+ * - Escalation from hooks to agents when complexity detected
10
+ * - Temporary hook registration by agents
11
+ * - Shared validation cache
12
+ * - Decision matrix: <2s deterministic = hook, >2s reasoning = agent
13
+ * - Performance targets: hooks <100ms, agents 2-30s
14
+ * - Message bus integration
15
+ *
16
+ * @module hook-agent-bridge
17
+ */
18
+ import { createMessage, messageBus } from '../core/agents/message-protocol.js';
19
+ import { ValidationCache } from '../core/agents/validation-cache.js';
20
+ // =============================================================================
21
+ // Constants
22
+ // =============================================================================
23
+ export const DEFAULT_BRIDGE_CONFIG = {
24
+ escalationThreshold: 50, // Score >= 50 escalates to agent
25
+ maxHookTimeMs: 100, // Hooks must complete in <100ms
26
+ maxAgentTimeMs: 30000, // Agents can take up to 30s
27
+ enableSharedCache: true,
28
+ defaultHookTtlMs: 5 * 60 * 1000, // 5 minutes
29
+ };
30
+ /**
31
+ * Complexity factors and their weights
32
+ */
33
+ const COMPLEXITY_WEIGHTS = {
34
+ multiFile: 0.3, // Multiple files affected
35
+ reasoning: 0.25, // Requires reasoning/analysis
36
+ external: 0.2, // External API/service calls
37
+ security: 0.15, // Security-sensitive operation
38
+ async: 0.1, // Async/long-running operation
39
+ };
40
+ // =============================================================================
41
+ // Hook-Agent Bridge Class
42
+ // =============================================================================
43
+ /**
44
+ * Bridge between hooks and agents
45
+ */
46
+ export class HookAgentBridge {
47
+ config;
48
+ temporaryHooks = new Map();
49
+ pendingEscalations = new Map();
50
+ sharedCache;
51
+ escalationCounter = 0;
52
+ constructor(config = {}) {
53
+ this.config = { ...DEFAULT_BRIDGE_CONFIG, ...config };
54
+ this.sharedCache = new ValidationCache(this.config.cacheConfig);
55
+ // Subscribe to agent responses
56
+ this.setupMessageHandlers();
57
+ }
58
+ // ===========================================================================
59
+ // Complexity Assessment
60
+ // ===========================================================================
61
+ /**
62
+ * Assess complexity of an operation
63
+ */
64
+ assessComplexity(operation, context) {
65
+ const factors = [];
66
+ // Multi-file factor
67
+ const files = context.files || [];
68
+ if (files.length > 1) {
69
+ factors.push({
70
+ name: 'multiFile',
71
+ weight: COMPLEXITY_WEIGHTS.multiFile,
72
+ score: Math.min(100, files.length * 20),
73
+ description: `${files.length} files affected`,
74
+ });
75
+ }
76
+ // Reasoning factor
77
+ const requiresReasoning = this.detectReasoningRequired(operation, context);
78
+ if (requiresReasoning) {
79
+ factors.push({
80
+ name: 'reasoning',
81
+ weight: COMPLEXITY_WEIGHTS.reasoning,
82
+ score: 80,
83
+ description: 'Requires analysis or decision-making',
84
+ });
85
+ }
86
+ // External API factor
87
+ const hasExternal = this.detectExternalCalls(operation, context);
88
+ if (hasExternal) {
89
+ factors.push({
90
+ name: 'external',
91
+ weight: COMPLEXITY_WEIGHTS.external,
92
+ score: 60,
93
+ description: 'External API or service calls',
94
+ });
95
+ }
96
+ // Security factor
97
+ const isSecurity = this.detectSecuritySensitive(operation, context);
98
+ if (isSecurity) {
99
+ factors.push({
100
+ name: 'security',
101
+ weight: COMPLEXITY_WEIGHTS.security,
102
+ score: 90,
103
+ description: 'Security-sensitive operation',
104
+ });
105
+ }
106
+ // Async factor
107
+ const isAsync = this.detectAsyncOperation(operation, context);
108
+ if (isAsync) {
109
+ factors.push({
110
+ name: 'async',
111
+ weight: COMPLEXITY_WEIGHTS.async,
112
+ score: 50,
113
+ description: 'Async or long-running operation',
114
+ });
115
+ }
116
+ // Calculate weighted score
117
+ const totalWeight = factors.reduce((sum, f) => sum + f.weight, 0);
118
+ const weightedScore = totalWeight > 0 ? factors.reduce((sum, f) => sum + f.score * f.weight, 0) / totalWeight : 0;
119
+ const score = Math.round(weightedScore);
120
+ const handler = this.determineHandler(score, factors);
121
+ const estimatedTimeMs = this.estimateProcessingTime(handler, factors);
122
+ return {
123
+ score,
124
+ handler,
125
+ factors,
126
+ estimatedTimeMs,
127
+ reason: this.generateDecisionReason(handler, factors),
128
+ };
129
+ }
130
+ /**
131
+ * Detect if operation requires reasoning
132
+ */
133
+ detectReasoningRequired(operation, context) {
134
+ const reasoningOps = ['analyze', 'decide', 'plan', 'review', 'validate'];
135
+ if (reasoningOps.some((op) => operation.toLowerCase().includes(op))) {
136
+ return true;
137
+ }
138
+ // Check for ambiguity markers
139
+ const text = String(context.text || context.content || '');
140
+ const ambiguityMarkers = ['maybe', 'might', 'could', 'perhaps', 'unclear'];
141
+ return ambiguityMarkers.some((m) => text.toLowerCase().includes(m));
142
+ }
143
+ /**
144
+ * Detect external API calls
145
+ */
146
+ detectExternalCalls(operation, context) {
147
+ const externalOps = ['fetch', 'request', 'api', 'http', 'web'];
148
+ if (externalOps.some((op) => operation.toLowerCase().includes(op))) {
149
+ return true;
150
+ }
151
+ const urls = context.urls;
152
+ return urls !== undefined && urls.length > 0;
153
+ }
154
+ /**
155
+ * Detect security-sensitive operations
156
+ */
157
+ detectSecuritySensitive(operation, context) {
158
+ const securityOps = ['auth', 'token', 'credential', 'secret', 'password', 'encrypt'];
159
+ if (securityOps.some((op) => operation.toLowerCase().includes(op))) {
160
+ return true;
161
+ }
162
+ const files = context.files || [];
163
+ const securityFiles = ['.env', 'credentials', 'secret', 'auth'];
164
+ return files.some((f) => securityFiles.some((s) => f.toLowerCase().includes(s)));
165
+ }
166
+ /**
167
+ * Detect async operations
168
+ */
169
+ detectAsyncOperation(operation, _context) {
170
+ const asyncOps = ['install', 'build', 'deploy', 'test', 'search'];
171
+ return asyncOps.some((op) => operation.toLowerCase().includes(op));
172
+ }
173
+ /**
174
+ * Determine handler based on score and factors
175
+ */
176
+ determineHandler(score, factors) {
177
+ // Always escalate security-sensitive operations
178
+ if (factors.some((f) => f.name === 'security' && f.score >= 80)) {
179
+ return 'agent';
180
+ }
181
+ // Use threshold for other decisions
182
+ if (score >= this.config.escalationThreshold) {
183
+ return 'agent';
184
+ }
185
+ // If reasoning required but score low, use both
186
+ if (factors.some((f) => f.name === 'reasoning' && f.score >= 50)) {
187
+ return 'both';
188
+ }
189
+ return 'hook';
190
+ }
191
+ /**
192
+ * Estimate processing time
193
+ */
194
+ estimateProcessingTime(handler, factors) {
195
+ if (handler === 'hook') {
196
+ return 50; // 50ms for hooks
197
+ }
198
+ // Base agent time
199
+ let time = 2000; // 2s base
200
+ // Add time for factors
201
+ for (const factor of factors) {
202
+ if (factor.name === 'external')
203
+ time += 3000;
204
+ if (factor.name === 'reasoning')
205
+ time += 5000;
206
+ if (factor.name === 'multiFile')
207
+ time += factor.score * 50;
208
+ }
209
+ return Math.min(time, this.config.maxAgentTimeMs);
210
+ }
211
+ /**
212
+ * Generate decision reason
213
+ */
214
+ generateDecisionReason(handler, factors) {
215
+ if (factors.length === 0) {
216
+ return 'Simple operation - handled by hook';
217
+ }
218
+ const topFactors = factors
219
+ .sort((a, b) => b.score * b.weight - a.score * a.weight)
220
+ .slice(0, 2)
221
+ .map((f) => f.description);
222
+ if (handler === 'agent') {
223
+ return `Escalated to agent: ${topFactors.join(', ')}`;
224
+ }
225
+ if (handler === 'both') {
226
+ return `Hybrid handling: ${topFactors.join(', ')}`;
227
+ }
228
+ return `Handled by hook: ${topFactors.join(', ')}`;
229
+ }
230
+ // ===========================================================================
231
+ // Escalation
232
+ // ===========================================================================
233
+ /**
234
+ * Escalate operation to agent
235
+ */
236
+ async escalateToAgent(hookId, operation, context) {
237
+ const assessment = this.assessComplexity(operation, context);
238
+ const request = {
239
+ id: `esc-${Date.now()}-${++this.escalationCounter}`,
240
+ hookId,
241
+ operation,
242
+ context,
243
+ assessment,
244
+ priority: this.determinePriority(assessment),
245
+ timestamp: new Date(),
246
+ };
247
+ this.pendingEscalations.set(request.id, request);
248
+ // Send escalation message via message bus (use 'broadcast' type for escalation)
249
+ const message = createMessage('broadcast', hookId, {
250
+ broadcastType: 'custom',
251
+ data: { type: 'escalation', request },
252
+ }, 'agent-pool');
253
+ await messageBus.publish(message);
254
+ // Wait for response with timeout
255
+ return this.waitForEscalationResult(request.id);
256
+ }
257
+ /**
258
+ * Determine priority for escalation
259
+ */
260
+ determinePriority(assessment) {
261
+ if (assessment.factors.some((f) => f.name === 'security')) {
262
+ return 'critical';
263
+ }
264
+ if (assessment.score >= 80) {
265
+ return 'high';
266
+ }
267
+ if (assessment.score >= 50) {
268
+ return 'medium';
269
+ }
270
+ return 'low';
271
+ }
272
+ /**
273
+ * Wait for escalation result
274
+ */
275
+ async waitForEscalationResult(requestId) {
276
+ return new Promise((resolve) => {
277
+ const startTime = Date.now();
278
+ const timeout = this.config.maxAgentTimeMs;
279
+ const checkResult = () => {
280
+ const request = this.pendingEscalations.get(requestId);
281
+ // Check timeout
282
+ if (Date.now() - startTime > timeout) {
283
+ this.pendingEscalations.delete(requestId);
284
+ resolve({
285
+ requestId,
286
+ success: false,
287
+ error: 'Escalation timed out',
288
+ processingTimeMs: Date.now() - startTime,
289
+ });
290
+ return;
291
+ }
292
+ // Check if resolved (would be updated by message handler)
293
+ // For now, simulate immediate resolution
294
+ if (!request) {
295
+ resolve({
296
+ requestId,
297
+ success: true,
298
+ processingTimeMs: Date.now() - startTime,
299
+ });
300
+ return;
301
+ }
302
+ // Check again after delay
303
+ setTimeout(checkResult, 100);
304
+ };
305
+ checkResult();
306
+ });
307
+ }
308
+ // ===========================================================================
309
+ // Temporary Hooks
310
+ // ===========================================================================
311
+ /**
312
+ * Register a temporary hook from an agent
313
+ */
314
+ registerTemporaryHook(hook) {
315
+ const id = `temp-hook-${Date.now()}-${Math.random().toString(36).slice(2)}`;
316
+ const expiresAt = new Date(Date.now() + this.config.defaultHookTtlMs);
317
+ const fullHook = {
318
+ ...hook,
319
+ id,
320
+ expiresAt,
321
+ };
322
+ this.temporaryHooks.set(id, fullHook);
323
+ // Schedule cleanup
324
+ setTimeout(() => {
325
+ this.unregisterTemporaryHook(id);
326
+ }, this.config.defaultHookTtlMs);
327
+ return id;
328
+ }
329
+ /**
330
+ * Unregister a temporary hook
331
+ */
332
+ unregisterTemporaryHook(hookId) {
333
+ return this.temporaryHooks.delete(hookId);
334
+ }
335
+ /**
336
+ * Get all active temporary hooks for an event
337
+ */
338
+ getTemporaryHooksForEvent(event) {
339
+ const now = new Date();
340
+ // Clean up expired hooks
341
+ for (const [id, hook] of this.temporaryHooks) {
342
+ if (hook.expiresAt < now) {
343
+ this.temporaryHooks.delete(id);
344
+ }
345
+ }
346
+ // Return matching hooks sorted by priority
347
+ return Array.from(this.temporaryHooks.values())
348
+ .filter((h) => h.event === event)
349
+ .sort((a, b) => b.priority - a.priority);
350
+ }
351
+ /**
352
+ * Execute temporary hooks
353
+ */
354
+ async executeTemporaryHooks(event, context) {
355
+ const hooks = this.getTemporaryHooksForEvent(event);
356
+ for (const hook of hooks) {
357
+ // Check matcher if defined
358
+ if (hook.matcher) {
359
+ const regex = new RegExp(hook.matcher);
360
+ const target = String(context.tool || context.command || '');
361
+ if (!regex.test(target)) {
362
+ continue;
363
+ }
364
+ }
365
+ const result = await hook.handler(context);
366
+ // If blocking hook says don't proceed, stop
367
+ if (hook.blocking && !result.proceed) {
368
+ return result;
369
+ }
370
+ // Apply any context modifications
371
+ if (result.modifiedContext) {
372
+ Object.assign(context, result.modifiedContext);
373
+ }
374
+ }
375
+ return { proceed: true };
376
+ }
377
+ // ===========================================================================
378
+ // Shared Cache
379
+ // ===========================================================================
380
+ /**
381
+ * Get the shared validation cache
382
+ */
383
+ getSharedCache() {
384
+ return this.sharedCache;
385
+ }
386
+ /**
387
+ * Check cache for a value
388
+ */
389
+ getCached(key) {
390
+ return this.sharedCache.get(key);
391
+ }
392
+ /**
393
+ * Set cache value
394
+ */
395
+ setCached(key, value, ttlMs) {
396
+ this.sharedCache.set(key, value, ttlMs);
397
+ }
398
+ // ===========================================================================
399
+ // Message Handling
400
+ // ===========================================================================
401
+ /**
402
+ * Setup message handlers for agent communication
403
+ */
404
+ setupMessageHandlers() {
405
+ // Handle escalation responses
406
+ messageBus.subscribe('hook-bridge', (msg) => {
407
+ if (msg.type === 'response') {
408
+ const payload = msg.payload;
409
+ if (payload.requestId) {
410
+ // Mark escalation as resolved
411
+ this.pendingEscalations.delete(payload.requestId);
412
+ }
413
+ }
414
+ }, { types: ['response'] });
415
+ // Handle temporary hook registrations from agents
416
+ messageBus.subscribe('hook-bridge', (msg) => {
417
+ if (msg.type === 'claim') {
418
+ const payload = msg.payload;
419
+ if (payload.action === 'register-hook' && payload.hook) {
420
+ this.registerTemporaryHook(payload.hook);
421
+ }
422
+ }
423
+ }, { types: ['claim'] });
424
+ }
425
+ // ===========================================================================
426
+ // Statistics
427
+ // ===========================================================================
428
+ /**
429
+ * Get bridge statistics
430
+ */
431
+ getStats() {
432
+ return {
433
+ pendingEscalations: this.pendingEscalations.size,
434
+ activeTemporaryHooks: this.temporaryHooks.size,
435
+ cacheStats: this.sharedCache.getStats(),
436
+ };
437
+ }
438
+ /**
439
+ * Clear all state
440
+ */
441
+ clear() {
442
+ this.pendingEscalations.clear();
443
+ this.temporaryHooks.clear();
444
+ this.sharedCache.clear();
445
+ }
446
+ }
447
+ // =============================================================================
448
+ // Singleton Instance
449
+ // =============================================================================
450
+ /** Global hook-agent bridge instance */
451
+ export const hookAgentBridge = new HookAgentBridge();
452
+ // =============================================================================
453
+ // Helper Functions
454
+ // =============================================================================
455
+ /**
456
+ * Quick decision on handler for an operation
457
+ */
458
+ export function decideHandler(operation, context) {
459
+ return hookAgentBridge.assessComplexity(operation, context).handler;
460
+ }
461
+ /**
462
+ * Check if operation should escalate to agent
463
+ */
464
+ export function shouldEscalate(operation, context) {
465
+ const decision = decideHandler(operation, context);
466
+ return decision === 'agent' || decision === 'both';
467
+ }
468
+ /**
469
+ * Format assessment for display
470
+ */
471
+ export function formatAssessment(assessment) {
472
+ const lines = [];
473
+ lines.push('## Complexity Assessment');
474
+ lines.push('');
475
+ lines.push(`**Score:** ${assessment.score}/100`);
476
+ lines.push(`**Handler:** ${assessment.handler}`);
477
+ lines.push(`**Est. Time:** ${assessment.estimatedTimeMs}ms`);
478
+ lines.push(`**Reason:** ${assessment.reason}`);
479
+ lines.push('');
480
+ if (assessment.factors.length > 0) {
481
+ lines.push('### Factors');
482
+ for (const factor of assessment.factors) {
483
+ lines.push(`- **${factor.name}**: ${factor.score} (weight: ${factor.weight})`);
484
+ lines.push(` ${factor.description}`);
485
+ }
486
+ }
487
+ return lines.join('\n');
488
+ }
489
+ //# sourceMappingURL=hook-agent-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-agent-bridge.js","sourceRoot":"","sources":["../../src/hooks/hook-agent-bridge.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  /**
2
- * Hook generators - v12.1.0
2
+ * Hook generators - v17.5.0
3
3
  */
4
+ export { DEFAULT_GENERATOR_CONFIG, DynamicHookGenerator, formatGeneratedResult, formatHooks, type GeneratedHooks, generateHooksForProject, getHookGenerator, HOOK_TEMPLATES, type HookDefinition, type HookEvent, type HookTemplate, mergeWithExistingSettings, type ProjectType, type ToolMatcher, } from './dynamic-generator.js';
5
+ export { type BridgeConfig, type ComplexityAssessment, type ComplexityFactor, DEFAULT_BRIDGE_CONFIG, decideHandler, type EscalationRequest, type EscalationResult, formatAssessment, type HandlerDecision, HookAgentBridge, type HookResult, hookAgentBridge, shouldEscalate, type TemporaryHook, } from './hook-agent-bridge.js';
4
6
  export { generatePostEditScript } from './post-edit.js';
5
7
  export { generatePostExecutionScript, generatePostExecutionScript as generatePostTestScript, generatePostExecutionScript as generatePostBuildScript, generatePostExecutionScript as generatePostLintScript, } from './post-execution.js';
6
8
  export { generatePostTypecheckScript } from './post-typecheck.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,IAAI,sBAAsB,EACrD,2BAA2B,IAAI,uBAAuB,EACtD,2BAA2B,IAAI,sBAAsB,GACtD,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,KAAK,cAAc,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,yBAAyB,EACzB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,qBAAqB,EACrB,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,KAAK,eAAe,EACpB,eAAe,EACf,KAAK,UAAU,EACf,eAAe,EACf,cAAc,EACd,KAAK,aAAa,GACnB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,IAAI,sBAAsB,EACrD,2BAA2B,IAAI,uBAAuB,EACtD,2BAA2B,IAAI,sBAAsB,GACtD,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA"}
@@ -1,6 +1,10 @@
1
1
  /**
2
- * Hook generators - v12.1.0
2
+ * Hook generators - v17.5.0
3
3
  */
4
+ // v17.5.0: Dynamic Hook Generator (MAC-10)
5
+ export { DEFAULT_GENERATOR_CONFIG, DynamicHookGenerator, formatGeneratedResult, formatHooks, generateHooksForProject, getHookGenerator, HOOK_TEMPLATES, mergeWithExistingSettings, } from './dynamic-generator.js';
6
+ // v17.5.0: Hook-Agent Bridge
7
+ export { DEFAULT_BRIDGE_CONFIG, decideHandler, formatAssessment, HookAgentBridge, hookAgentBridge, shouldEscalate, } from './hook-agent-bridge.js';
4
8
  export { generatePostEditScript } from './post-edit.js';
5
9
  // Legacy exports for backwards compatibility (deprecated)
6
10
  export { generatePostExecutionScript, generatePostExecutionScript as generatePostTestScript, generatePostExecutionScript as generatePostBuildScript, generatePostExecutionScript as generatePostLintScript, } from './post-execution.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,0DAA0D;AAC1D,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,IAAI,sBAAsB,EACrD,2BAA2B,IAAI,uBAAuB,EACtD,2BAA2B,IAAI,sBAAsB,GACtD,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,2CAA2C;AAC3C,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EAEX,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EAId,yBAAyB,GAG1B,MAAM,wBAAwB,CAAA;AAC/B,6BAA6B;AAC7B,OAAO,EAIL,qBAAqB,EACrB,aAAa,EAGb,gBAAgB,EAEhB,eAAe,EAEf,eAAe,EACf,cAAc,GAEf,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,0DAA0D;AAC1D,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,IAAI,sBAAsB,EACrD,2BAA2B,IAAI,uBAAuB,EACtD,2BAA2B,IAAI,sBAAsB,GACtD,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-catalog.d.ts","sourceRoot":"","sources":["../../src/mcp/tool-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,MAAM,GACN,MAAM,GACN,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,UAAU,CAAA;AAEd;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,UAAU,GACV,gBAAgB,GAChB,SAAS,GACT,QAAQ,GACR,SAAS,CAAA;AAEb;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,YAAY,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,aAAa,EAAE,CAAA;IAClC,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,CAAC,EAAE;QACf,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,UAAU,CAAC,EAAE;QACX,UAAU,EAAE,MAAM,CAAA;QAClB,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,EA+rBlC,CAAA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,EAAE,CAEjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,EAAE,CAErE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAI5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,KAAK,CAAC;IAC1C,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf,CAAC,CAyBD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAuBtE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsC9D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAmD3D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAoGlD"}
1
+ {"version":3,"file":"tool-catalog.d.ts","sourceRoot":"","sources":["../../src/mcp/tool-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,MAAM,GACN,MAAM,GACN,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,UAAU,CAAA;AAEd;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,UAAU,GACV,gBAAgB,GAChB,SAAS,GACT,QAAQ,GACR,SAAS,CAAA;AAEb;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,YAAY,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,aAAa,EAAE,CAAA;IAClC,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,CAAC,EAAE;QACf,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,UAAU,CAAC,EAAE;QACX,UAAU,EAAE,MAAM,CAAA;QAClB,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,EAkvBlC,CAAA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,EAAE,CAEjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,EAAE,CAErE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,CAI5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,KAAK,CAAC;IAC1C,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf,CAAC,CAyBD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAuBtE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsC9D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAmD3D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAoGlD"}
@@ -688,6 +688,53 @@ export const TOOL_CATALOG = [
688
688
  ],
689
689
  relatedTools: ['dino_spec_analyze', 'dino_spec_feedback', 'dino_memory_recall'],
690
690
  },
691
+ // =====================================================================
692
+ // VALIDATION TOOLS (v17.4.0)
693
+ // =====================================================================
694
+ {
695
+ name: 'dino_validate_package',
696
+ category: 'analysis',
697
+ description: 'Validate a package for security vulnerabilities, size, and quality before installation (v17.4.0)',
698
+ whenToUse: 'Before adding a new dependency to check for security issues, package size, and quality metrics.',
699
+ whenNotToUse: 'For packages already validated or internal packages.',
700
+ recommendedPhases: ['discovery', 'planning'],
701
+ exampleScenarios: [
702
+ 'Validating lodash before adding it as a dependency',
703
+ 'Checking a package for known vulnerabilities',
704
+ 'Verifying package size is within acceptable limits',
705
+ 'Checking if a package is deprecated or unmaintained',
706
+ ],
707
+ relatedTools: ['dino_validate_deps', 'dino_security_scan'],
708
+ },
709
+ {
710
+ name: 'dino_validate_deps',
711
+ category: 'analysis',
712
+ description: 'Batch validate multiple packages or all dependencies from package.json (v17.4.0)',
713
+ whenToUse: 'To audit all project dependencies or validate a list of packages at once.',
714
+ whenNotToUse: 'For single package validation - use dino_validate_package instead.',
715
+ recommendedPhases: ['discovery', 'planning', 'review'],
716
+ exampleScenarios: [
717
+ 'Auditing all dependencies in package.json',
718
+ 'Validating a list of packages before a major upgrade',
719
+ 'Checking devDependencies for security issues',
720
+ 'Running dependency validation as part of Ralph Gate',
721
+ ],
722
+ relatedTools: ['dino_validate_package', 'dino_security_scan'],
723
+ },
724
+ {
725
+ name: 'dino_security_scan',
726
+ category: 'analysis',
727
+ description: 'Fast security-only scan for package vulnerabilities via npm audit (v17.4.0)',
728
+ whenToUse: 'When you only need security information without size/quality checks. Faster than full validation.',
729
+ whenNotToUse: 'When you also need size and quality metrics - use dino_validate_package.',
730
+ recommendedPhases: ['discovery', 'planning'],
731
+ exampleScenarios: [
732
+ 'Quick security check before installing a package',
733
+ 'Scanning for vulnerabilities in a recommended package',
734
+ 'Checking if a package has critical security issues',
735
+ ],
736
+ relatedTools: ['dino_validate_package', 'dino_validate_deps'],
737
+ },
691
738
  ];
692
739
  /**
693
740
  * Get tools recommended for a workflow phase