dino-spec 17.4.2 → 17.5.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.
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +10 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/core/agents/__tests__/confidence-gate.test.d.ts +5 -0
- package/dist/core/agents/__tests__/confidence-gate.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/confidence-gate.test.js +329 -0
- package/dist/core/agents/__tests__/confidence-gate.test.js.map +1 -0
- package/dist/core/agents/__tests__/gap-detector.test.d.ts +5 -0
- package/dist/core/agents/__tests__/gap-detector.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/gap-detector.test.js +609 -0
- package/dist/core/agents/__tests__/gap-detector.test.js.map +1 -0
- package/dist/core/agents/__tests__/learning-loop.test.d.ts +5 -0
- package/dist/core/agents/__tests__/learning-loop.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/learning-loop.test.js +663 -0
- package/dist/core/agents/__tests__/learning-loop.test.js.map +1 -0
- package/dist/core/agents/__tests__/parallel-executor.test.d.ts +5 -0
- package/dist/core/agents/__tests__/parallel-executor.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/parallel-executor.test.js +610 -0
- package/dist/core/agents/__tests__/parallel-executor.test.js.map +1 -0
- package/dist/core/agents/__tests__/research-validator.test.js +5 -5
- package/dist/core/agents/__tests__/research-validator.test.js.map +1 -1
- package/dist/core/agents/__tests__/skill-creator.test.d.ts +5 -0
- package/dist/core/agents/__tests__/skill-creator.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/skill-creator.test.js +443 -0
- package/dist/core/agents/__tests__/skill-creator.test.js.map +1 -0
- package/dist/core/agents/__tests__/state-persistence.test.d.ts +2 -0
- package/dist/core/agents/__tests__/state-persistence.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/state-persistence.test.js +270 -0
- package/dist/core/agents/__tests__/state-persistence.test.js.map +1 -0
- package/dist/core/agents/__tests__/validation-cache.test.d.ts +2 -0
- package/dist/core/agents/__tests__/validation-cache.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/validation-cache.test.js +181 -0
- package/dist/core/agents/__tests__/validation-cache.test.js.map +1 -0
- package/dist/core/agents/blackboard.d.ts +22 -3
- package/dist/core/agents/blackboard.d.ts.map +1 -1
- package/dist/core/agents/blackboard.js +52 -2
- package/dist/core/agents/blackboard.js.map +1 -1
- package/dist/core/agents/circuit-breaker.d.ts +79 -1
- package/dist/core/agents/circuit-breaker.d.ts.map +1 -1
- package/dist/core/agents/circuit-breaker.js +175 -1
- package/dist/core/agents/circuit-breaker.js.map +1 -1
- package/dist/core/agents/clarification-phase.d.ts +128 -0
- package/dist/core/agents/clarification-phase.d.ts.map +1 -0
- package/dist/core/agents/clarification-phase.js +375 -0
- package/dist/core/agents/clarification-phase.js.map +1 -0
- package/dist/core/agents/confidence-gate.d.ts +116 -3
- package/dist/core/agents/confidence-gate.d.ts.map +1 -1
- package/dist/core/agents/confidence-gate.js +363 -3
- package/dist/core/agents/confidence-gate.js.map +1 -1
- package/dist/core/agents/correction-tracker.d.ts +197 -0
- package/dist/core/agents/correction-tracker.d.ts.map +1 -0
- package/dist/core/agents/correction-tracker.js +366 -0
- package/dist/core/agents/correction-tracker.js.map +1 -0
- package/dist/core/agents/dependency-graph.d.ts +193 -0
- package/dist/core/agents/dependency-graph.d.ts.map +1 -0
- package/dist/core/agents/dependency-graph.js +462 -0
- package/dist/core/agents/dependency-graph.js.map +1 -0
- package/dist/core/agents/gap-detector.d.ts +277 -0
- package/dist/core/agents/gap-detector.d.ts.map +1 -0
- package/dist/core/agents/gap-detector.js +540 -0
- package/dist/core/agents/gap-detector.js.map +1 -0
- package/dist/core/agents/index.d.ts +14 -1
- package/dist/core/agents/index.d.ts.map +1 -1
- package/dist/core/agents/index.js +26 -1
- package/dist/core/agents/index.js.map +1 -1
- package/dist/core/agents/message-protocol.d.ts +13 -2
- package/dist/core/agents/message-protocol.d.ts.map +1 -1
- package/dist/core/agents/message-protocol.js +20 -1
- package/dist/core/agents/message-protocol.js.map +1 -1
- package/dist/core/agents/parallel-executor.d.ts +182 -0
- package/dist/core/agents/parallel-executor.d.ts.map +1 -0
- package/dist/core/agents/parallel-executor.js +474 -0
- package/dist/core/agents/parallel-executor.js.map +1 -0
- package/dist/core/agents/pattern-detector.d.ts +157 -0
- package/dist/core/agents/pattern-detector.d.ts.map +1 -0
- package/dist/core/agents/pattern-detector.js +370 -0
- package/dist/core/agents/pattern-detector.js.map +1 -0
- package/dist/core/agents/registry-client.d.ts +6 -0
- package/dist/core/agents/registry-client.d.ts.map +1 -1
- package/dist/core/agents/registry-client.js +3 -0
- package/dist/core/agents/registry-client.js.map +1 -1
- package/dist/core/agents/research-phase.d.ts +114 -0
- package/dist/core/agents/research-phase.d.ts.map +1 -0
- package/dist/core/agents/research-phase.js +355 -0
- package/dist/core/agents/research-phase.js.map +1 -0
- package/dist/core/agents/research-validator.d.ts +13 -2
- package/dist/core/agents/research-validator.d.ts.map +1 -1
- package/dist/core/agents/research-validator.js +63 -31
- package/dist/core/agents/research-validator.js.map +1 -1
- package/dist/core/agents/skill-creator.d.ts +174 -0
- package/dist/core/agents/skill-creator.d.ts.map +1 -0
- package/dist/core/agents/skill-creator.js +570 -0
- package/dist/core/agents/skill-creator.js.map +1 -0
- package/dist/core/agents/state-persistence.d.ts +184 -0
- package/dist/core/agents/state-persistence.d.ts.map +1 -0
- package/dist/core/agents/state-persistence.js +394 -0
- package/dist/core/agents/state-persistence.js.map +1 -0
- package/dist/core/agents/validation-cache.d.ts +122 -0
- package/dist/core/agents/validation-cache.d.ts.map +1 -0
- package/dist/core/agents/validation-cache.js +280 -0
- package/dist/core/agents/validation-cache.js.map +1 -0
- package/dist/core/agents/validators/__tests__/validators.test.d.ts +5 -0
- package/dist/core/agents/validators/__tests__/validators.test.d.ts.map +1 -0
- package/dist/core/agents/validators/__tests__/validators.test.js +321 -0
- package/dist/core/agents/validators/__tests__/validators.test.js.map +1 -0
- package/dist/core/agents/validators/base-validator.d.ts +191 -0
- package/dist/core/agents/validators/base-validator.d.ts.map +1 -0
- package/dist/core/agents/validators/base-validator.js +192 -0
- package/dist/core/agents/validators/base-validator.js.map +1 -0
- package/dist/core/agents/validators/index.d.ts +7 -0
- package/dist/core/agents/validators/index.d.ts.map +1 -0
- package/dist/core/agents/validators/index.js +7 -0
- package/dist/core/agents/validators/index.js.map +1 -0
- package/dist/core/agents/validators/npm-validator.d.ts +50 -0
- package/dist/core/agents/validators/npm-validator.d.ts.map +1 -0
- package/dist/core/agents/validators/npm-validator.js +211 -0
- package/dist/core/agents/validators/npm-validator.js.map +1 -0
- package/dist/core/agents/validators/pip-validator.d.ts +49 -0
- package/dist/core/agents/validators/pip-validator.d.ts.map +1 -0
- package/dist/core/agents/validators/pip-validator.js +191 -0
- package/dist/core/agents/validators/pip-validator.js.map +1 -0
- package/dist/core/agents/validators/validator-registry.d.ts +122 -0
- package/dist/core/agents/validators/validator-registry.d.ts.map +1 -0
- package/dist/core/agents/validators/validator-registry.js +321 -0
- package/dist/core/agents/validators/validator-registry.js.map +1 -0
- package/dist/core/context-repl/types.d.ts +4 -4
- package/dist/core/memory/index.d.ts +1 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +2 -0
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/memory/learning-store.d.ts +222 -0
- package/dist/core/memory/learning-store.d.ts.map +1 -0
- package/dist/core/memory/learning-store.js +477 -0
- package/dist/core/memory/learning-store.js.map +1 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts +5 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts.map +1 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js +401 -0
- package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js.map +1 -0
- package/dist/core/spec-analyzer/ambiguity-detector.d.ts +99 -0
- package/dist/core/spec-analyzer/ambiguity-detector.d.ts.map +1 -0
- package/dist/core/spec-analyzer/ambiguity-detector.js +250 -0
- package/dist/core/spec-analyzer/ambiguity-detector.js.map +1 -0
- package/dist/core/spec-analyzer/clarification-generator.d.ts +76 -0
- package/dist/core/spec-analyzer/clarification-generator.d.ts.map +1 -0
- package/dist/core/spec-analyzer/clarification-generator.js +257 -0
- package/dist/core/spec-analyzer/clarification-generator.js.map +1 -0
- package/dist/core/spec-analyzer/index.d.ts +10 -1
- package/dist/core/spec-analyzer/index.d.ts.map +1 -1
- package/dist/core/spec-analyzer/index.js +13 -1
- package/dist/core/spec-analyzer/index.js.map +1 -1
- package/dist/core/spec-analyzer/patterns.d.ts +73 -0
- package/dist/core/spec-analyzer/patterns.d.ts.map +1 -0
- package/dist/core/spec-analyzer/patterns.js +412 -0
- package/dist/core/spec-analyzer/patterns.js.map +1 -0
- package/dist/hooks/__tests__/dynamic-generator.test.d.ts +5 -0
- package/dist/hooks/__tests__/dynamic-generator.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/dynamic-generator.test.js +425 -0
- package/dist/hooks/__tests__/dynamic-generator.test.js.map +1 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts +5 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.js +315 -0
- package/dist/hooks/__tests__/hook-agent-bridge.test.js.map +1 -0
- package/dist/hooks/dynamic-generator.d.ts +158 -0
- package/dist/hooks/dynamic-generator.d.ts.map +1 -0
- package/dist/hooks/dynamic-generator.js +448 -0
- package/dist/hooks/dynamic-generator.js.map +1 -0
- package/dist/hooks/hook-agent-bridge.d.ts +252 -0
- package/dist/hooks/hook-agent-bridge.d.ts.map +1 -0
- package/dist/hooks/hook-agent-bridge.js +489 -0
- package/dist/hooks/hook-agent-bridge.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +5 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/mcp/tool-catalog.d.ts.map +1 -1
- package/dist/mcp/tool-catalog.js +47 -0
- package/dist/mcp/tool-catalog.js.map +1 -1
- package/dist/mcp/tool-tiers.d.ts.map +1 -1
- package/dist/mcp/tool-tiers.js +4 -0
- package/dist/mcp/tool-tiers.js.map +1 -1
- package/dist/mcp/tools/index.d.ts +2 -1
- package/dist/mcp/tools/index.d.ts.map +1 -1
- package/dist/mcp/tools/index.js +15 -1
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/learning-store.d.ts +30 -0
- package/dist/mcp/tools/learning-store.d.ts.map +1 -0
- package/dist/mcp/tools/learning-store.js +286 -0
- package/dist/mcp/tools/learning-store.js.map +1 -0
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +2 -47
- package/dist/rules/index.js.map +1 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +159 -38
- package/dist/skills/index.js.map +1 -1
- 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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"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Hook generators -
|
|
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;
|
|
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"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Hook generators -
|
|
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';
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/mcp/tool-catalog.js
CHANGED
|
@@ -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
|