@claude-flow/hooks 3.0.0-alpha.1
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/README.md +440 -0
- package/bin/hooks-daemon.js +199 -0
- package/bin/statusline.js +77 -0
- package/dist/bridge/official-hooks-bridge.d.ts +99 -0
- package/dist/bridge/official-hooks-bridge.d.ts.map +1 -0
- package/dist/bridge/official-hooks-bridge.js +280 -0
- package/dist/bridge/official-hooks-bridge.js.map +1 -0
- package/dist/cli/guidance-cli.d.ts +17 -0
- package/dist/cli/guidance-cli.d.ts.map +1 -0
- package/dist/cli/guidance-cli.js +486 -0
- package/dist/cli/guidance-cli.js.map +1 -0
- package/dist/daemons/index.d.ts +204 -0
- package/dist/daemons/index.d.ts.map +1 -0
- package/dist/daemons/index.js +443 -0
- package/dist/daemons/index.js.map +1 -0
- package/dist/executor/index.d.ts +80 -0
- package/dist/executor/index.d.ts.map +1 -0
- package/dist/executor/index.js +273 -0
- package/dist/executor/index.js.map +1 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +85 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/index.d.ts +11 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +11 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/llm-hooks.d.ts +93 -0
- package/dist/llm/llm-hooks.d.ts.map +1 -0
- package/dist/llm/llm-hooks.js +382 -0
- package/dist/llm/llm-hooks.js.map +1 -0
- package/dist/mcp/index.d.ts +61 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +501 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/reasoningbank/guidance-provider.d.ts +78 -0
- package/dist/reasoningbank/guidance-provider.d.ts.map +1 -0
- package/dist/reasoningbank/guidance-provider.js +350 -0
- package/dist/reasoningbank/guidance-provider.js.map +1 -0
- package/dist/reasoningbank/index.d.ts +212 -0
- package/dist/reasoningbank/index.d.ts.map +1 -0
- package/dist/reasoningbank/index.js +785 -0
- package/dist/reasoningbank/index.js.map +1 -0
- package/dist/registry/index.d.ts +85 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +212 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/statusline/index.d.ts +128 -0
- package/dist/statusline/index.d.ts.map +1 -0
- package/dist/statusline/index.js +493 -0
- package/dist/statusline/index.js.map +1 -0
- package/dist/swarm/index.d.ts +271 -0
- package/dist/swarm/index.d.ts.map +1 -0
- package/dist/swarm/index.js +638 -0
- package/dist/swarm/index.js.map +1 -0
- package/dist/types.d.ts +525 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +56 -0
- package/dist/types.js.map +1 -0
- package/dist/workers/index.d.ts +232 -0
- package/dist/workers/index.d.ts.map +1 -0
- package/dist/workers/index.js +1521 -0
- package/dist/workers/index.js.map +1 -0
- package/dist/workers/mcp-tools.d.ts +37 -0
- package/dist/workers/mcp-tools.d.ts.map +1 -0
- package/dist/workers/mcp-tools.js +414 -0
- package/dist/workers/mcp-tools.js.map +1 -0
- package/dist/workers/session-hook.d.ts +42 -0
- package/dist/workers/session-hook.d.ts.map +1 -0
- package/dist/workers/session-hook.js +172 -0
- package/dist/workers/session-hook.js.map +1 -0
- package/package.json +101 -0
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* V3 Guidance CLI
|
|
4
|
+
*
|
|
5
|
+
* Command-line interface for hooks guidance system.
|
|
6
|
+
* Outputs plain text or JSON that Claude Code hooks can consume.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* npx @claude-flow/hooks session-context
|
|
10
|
+
* npx @claude-flow/hooks user-prompt "Fix authentication bug"
|
|
11
|
+
* npx @claude-flow/hooks pre-edit "/path/to/file.ts"
|
|
12
|
+
* npx @claude-flow/hooks route "Implement caching layer"
|
|
13
|
+
*
|
|
14
|
+
* @module @claude-flow/hooks/cli/guidance-cli
|
|
15
|
+
*/
|
|
16
|
+
import { GuidanceProvider } from '../reasoningbank/guidance-provider.js';
|
|
17
|
+
import { reasoningBank } from '../reasoningbank/index.js';
|
|
18
|
+
import { swarmComm } from '../swarm/index.js';
|
|
19
|
+
import { readFileSync } from 'fs';
|
|
20
|
+
const provider = new GuidanceProvider(reasoningBank);
|
|
21
|
+
async function main() {
|
|
22
|
+
const args = process.argv.slice(2);
|
|
23
|
+
const command = args[0];
|
|
24
|
+
try {
|
|
25
|
+
await provider.initialize();
|
|
26
|
+
switch (command) {
|
|
27
|
+
case 'session-context':
|
|
28
|
+
case 'session':
|
|
29
|
+
console.log(await provider.generateSessionContext());
|
|
30
|
+
process.exit(0);
|
|
31
|
+
break;
|
|
32
|
+
case 'user-prompt':
|
|
33
|
+
case 'prompt':
|
|
34
|
+
console.log(await provider.generatePromptContext(args[1] || ''));
|
|
35
|
+
process.exit(0);
|
|
36
|
+
break;
|
|
37
|
+
case 'pre-edit':
|
|
38
|
+
console.log(JSON.stringify(await provider.generatePreEditGuidance(args[1] || '')));
|
|
39
|
+
process.exit(0);
|
|
40
|
+
break;
|
|
41
|
+
case 'post-edit': {
|
|
42
|
+
let content;
|
|
43
|
+
try {
|
|
44
|
+
content = readFileSync(args[1], 'utf-8');
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// File might not exist yet
|
|
48
|
+
}
|
|
49
|
+
console.log(JSON.stringify(await provider.generatePostEditFeedback(args[1] || '', content)));
|
|
50
|
+
process.exit(0);
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case 'pre-command':
|
|
54
|
+
console.log(JSON.stringify(await provider.generatePreCommandGuidance(args[1] || '')));
|
|
55
|
+
process.exit(0);
|
|
56
|
+
break;
|
|
57
|
+
case 'route':
|
|
58
|
+
console.log(await provider.generateRoutingGuidance(args[1] || ''));
|
|
59
|
+
process.exit(0);
|
|
60
|
+
break;
|
|
61
|
+
case 'stop-check': {
|
|
62
|
+
const result = await provider.generateStopCheck();
|
|
63
|
+
if (!result.shouldStop) {
|
|
64
|
+
console.error(result.reason);
|
|
65
|
+
process.exit(2);
|
|
66
|
+
}
|
|
67
|
+
process.exit(0);
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
case 'store': {
|
|
71
|
+
const strategy = args[1] || '';
|
|
72
|
+
const domain = args[2] || 'general';
|
|
73
|
+
const result = await reasoningBank.storePattern(strategy, domain);
|
|
74
|
+
console.log(JSON.stringify(result));
|
|
75
|
+
process.exit(0);
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
case 'search': {
|
|
79
|
+
const query = args[1] || '';
|
|
80
|
+
const k = parseInt(args[2] || '5');
|
|
81
|
+
const results = await reasoningBank.searchPatterns(query, k);
|
|
82
|
+
console.log(JSON.stringify({
|
|
83
|
+
patterns: results.map(r => ({
|
|
84
|
+
id: r.pattern.id,
|
|
85
|
+
strategy: r.pattern.strategy,
|
|
86
|
+
domain: r.pattern.domain,
|
|
87
|
+
similarity: r.similarity,
|
|
88
|
+
quality: r.pattern.quality,
|
|
89
|
+
})),
|
|
90
|
+
}));
|
|
91
|
+
process.exit(0);
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
case 'consolidate': {
|
|
95
|
+
const result = await reasoningBank.consolidate();
|
|
96
|
+
console.log(JSON.stringify(result));
|
|
97
|
+
process.exit(0);
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
case 'stats':
|
|
101
|
+
console.log(JSON.stringify(reasoningBank.getStats()));
|
|
102
|
+
process.exit(0);
|
|
103
|
+
break;
|
|
104
|
+
case 'export': {
|
|
105
|
+
const exported = await reasoningBank.exportPatterns();
|
|
106
|
+
console.log(JSON.stringify({
|
|
107
|
+
shortTermCount: exported.shortTerm.length,
|
|
108
|
+
longTermCount: exported.longTerm.length,
|
|
109
|
+
patterns: [...exported.shortTerm, ...exported.longTerm].map(p => ({
|
|
110
|
+
id: p.id,
|
|
111
|
+
strategy: p.strategy,
|
|
112
|
+
domain: p.domain,
|
|
113
|
+
quality: p.quality,
|
|
114
|
+
})),
|
|
115
|
+
}));
|
|
116
|
+
process.exit(0);
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
// ========================================
|
|
120
|
+
// Swarm Communication Commands
|
|
121
|
+
// ========================================
|
|
122
|
+
case 'swarm-send': {
|
|
123
|
+
const to = args[1] || '*';
|
|
124
|
+
const content = args[2] || '';
|
|
125
|
+
await swarmComm.initialize();
|
|
126
|
+
const msg = await swarmComm.sendMessage(to, content, {
|
|
127
|
+
type: args[3] || 'context',
|
|
128
|
+
priority: args[4] || 'normal',
|
|
129
|
+
});
|
|
130
|
+
console.log(JSON.stringify(msg));
|
|
131
|
+
process.exit(0);
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
case 'swarm-messages': {
|
|
135
|
+
await swarmComm.initialize();
|
|
136
|
+
const messages = swarmComm.getMessages({
|
|
137
|
+
limit: parseInt(args[1] || '10'),
|
|
138
|
+
type: args[2],
|
|
139
|
+
});
|
|
140
|
+
console.log(JSON.stringify({
|
|
141
|
+
count: messages.length,
|
|
142
|
+
messages: messages.map(m => ({
|
|
143
|
+
id: m.id,
|
|
144
|
+
from: m.from,
|
|
145
|
+
type: m.type,
|
|
146
|
+
content: m.content.substring(0, 100),
|
|
147
|
+
priority: m.priority,
|
|
148
|
+
timestamp: new Date(m.timestamp).toISOString(),
|
|
149
|
+
})),
|
|
150
|
+
}));
|
|
151
|
+
process.exit(0);
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
case 'swarm-broadcast': {
|
|
155
|
+
const content = args[1] || '';
|
|
156
|
+
await swarmComm.initialize();
|
|
157
|
+
const msg = await swarmComm.broadcastContext(content);
|
|
158
|
+
console.log(JSON.stringify({
|
|
159
|
+
id: msg.id,
|
|
160
|
+
to: msg.to,
|
|
161
|
+
broadcast: true,
|
|
162
|
+
timestamp: new Date(msg.timestamp).toISOString(),
|
|
163
|
+
}));
|
|
164
|
+
process.exit(0);
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
case 'swarm-pattern-broadcast': {
|
|
168
|
+
const strategy = args[1] || '';
|
|
169
|
+
const domain = args[2] || 'general';
|
|
170
|
+
await swarmComm.initialize();
|
|
171
|
+
// Store pattern first
|
|
172
|
+
const stored = await reasoningBank.storePattern(strategy, domain);
|
|
173
|
+
const patterns = await reasoningBank.searchPatterns(stored.id, 1);
|
|
174
|
+
if (patterns.length > 0) {
|
|
175
|
+
const broadcast = await swarmComm.broadcastPattern(patterns[0].pattern);
|
|
176
|
+
console.log(JSON.stringify({
|
|
177
|
+
broadcastId: broadcast.id,
|
|
178
|
+
patternId: stored.id,
|
|
179
|
+
strategy: patterns[0].pattern.strategy,
|
|
180
|
+
domain: patterns[0].pattern.domain,
|
|
181
|
+
recipients: broadcast.recipients.length,
|
|
182
|
+
}));
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
console.log(JSON.stringify({ error: 'Pattern not found after storage' }));
|
|
186
|
+
}
|
|
187
|
+
process.exit(0);
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
case 'swarm-patterns': {
|
|
191
|
+
await swarmComm.initialize();
|
|
192
|
+
const broadcasts = swarmComm.getPatternBroadcasts({
|
|
193
|
+
domain: args[1],
|
|
194
|
+
minQuality: args[2] ? parseFloat(args[2]) : undefined,
|
|
195
|
+
});
|
|
196
|
+
console.log(JSON.stringify({
|
|
197
|
+
count: broadcasts.length,
|
|
198
|
+
broadcasts: broadcasts.map(b => ({
|
|
199
|
+
id: b.id,
|
|
200
|
+
source: b.sourceAgent,
|
|
201
|
+
strategy: b.pattern.strategy,
|
|
202
|
+
domain: b.pattern.domain,
|
|
203
|
+
quality: b.pattern.quality,
|
|
204
|
+
acknowledgments: b.acknowledgments.length,
|
|
205
|
+
})),
|
|
206
|
+
}));
|
|
207
|
+
process.exit(0);
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
case 'swarm-import-pattern': {
|
|
211
|
+
const broadcastId = args[1] || '';
|
|
212
|
+
await swarmComm.initialize();
|
|
213
|
+
const success = await swarmComm.importBroadcastPattern(broadcastId);
|
|
214
|
+
console.log(JSON.stringify({ broadcastId, imported: success }));
|
|
215
|
+
process.exit(success ? 0 : 1);
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
case 'swarm-consensus': {
|
|
219
|
+
const question = args[1] || '';
|
|
220
|
+
const optionsStr = args[2] || '';
|
|
221
|
+
const timeout = args[3] ? parseInt(args[3]) : undefined;
|
|
222
|
+
const options = optionsStr.split(',').map(o => o.trim()).filter(Boolean);
|
|
223
|
+
if (options.length < 2) {
|
|
224
|
+
console.error('Error: Consensus requires at least 2 options (comma-separated)');
|
|
225
|
+
process.exit(1);
|
|
226
|
+
}
|
|
227
|
+
await swarmComm.initialize();
|
|
228
|
+
const consensus = await swarmComm.initiateConsensus(question, options, timeout);
|
|
229
|
+
console.log(JSON.stringify({
|
|
230
|
+
consensusId: consensus.id,
|
|
231
|
+
question: consensus.question,
|
|
232
|
+
options: consensus.options,
|
|
233
|
+
deadline: new Date(consensus.deadline).toISOString(),
|
|
234
|
+
status: consensus.status,
|
|
235
|
+
}));
|
|
236
|
+
process.exit(0);
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
case 'swarm-vote': {
|
|
240
|
+
const consensusId = args[1] || '';
|
|
241
|
+
const vote = args[2] || '';
|
|
242
|
+
await swarmComm.initialize();
|
|
243
|
+
const success = swarmComm.voteConsensus(consensusId, vote);
|
|
244
|
+
console.log(JSON.stringify({ consensusId, vote, accepted: success }));
|
|
245
|
+
process.exit(success ? 0 : 1);
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
case 'swarm-consensus-status': {
|
|
249
|
+
const consensusId = args[1] || '';
|
|
250
|
+
await swarmComm.initialize();
|
|
251
|
+
if (consensusId) {
|
|
252
|
+
const consensus = swarmComm.getConsensus(consensusId);
|
|
253
|
+
if (consensus) {
|
|
254
|
+
console.log(swarmComm.generateConsensusGuidance(consensusId));
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
console.error(`Consensus ${consensusId} not found`);
|
|
258
|
+
process.exit(1);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
const pending = swarmComm.getPendingConsensus();
|
|
263
|
+
console.log(JSON.stringify({
|
|
264
|
+
pendingCount: pending.length,
|
|
265
|
+
requests: pending.map(r => ({
|
|
266
|
+
id: r.id,
|
|
267
|
+
question: r.question,
|
|
268
|
+
votes: r.votes.size,
|
|
269
|
+
deadline: new Date(r.deadline).toISOString(),
|
|
270
|
+
})),
|
|
271
|
+
}));
|
|
272
|
+
}
|
|
273
|
+
process.exit(0);
|
|
274
|
+
break;
|
|
275
|
+
}
|
|
276
|
+
case 'swarm-handoff': {
|
|
277
|
+
const toAgent = args[1] || '';
|
|
278
|
+
const description = args[2] || '';
|
|
279
|
+
const contextJson = args[3];
|
|
280
|
+
let context = {
|
|
281
|
+
filesModified: [],
|
|
282
|
+
patternsUsed: [],
|
|
283
|
+
decisions: [],
|
|
284
|
+
blockers: [],
|
|
285
|
+
nextSteps: [],
|
|
286
|
+
};
|
|
287
|
+
if (contextJson) {
|
|
288
|
+
try {
|
|
289
|
+
context = { ...context, ...JSON.parse(contextJson) };
|
|
290
|
+
}
|
|
291
|
+
catch {
|
|
292
|
+
console.error('Error: Invalid context JSON');
|
|
293
|
+
process.exit(1);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
await swarmComm.initialize();
|
|
297
|
+
const handoff = await swarmComm.initiateHandoff(toAgent, description, context);
|
|
298
|
+
console.log(JSON.stringify({
|
|
299
|
+
handoffId: handoff.id,
|
|
300
|
+
toAgent: handoff.toAgent,
|
|
301
|
+
description: handoff.description,
|
|
302
|
+
status: handoff.status,
|
|
303
|
+
}));
|
|
304
|
+
process.exit(0);
|
|
305
|
+
break;
|
|
306
|
+
}
|
|
307
|
+
case 'swarm-accept-handoff': {
|
|
308
|
+
const handoffId = args[1] || '';
|
|
309
|
+
await swarmComm.initialize();
|
|
310
|
+
const success = swarmComm.acceptHandoff(handoffId);
|
|
311
|
+
if (success) {
|
|
312
|
+
console.log(swarmComm.generateHandoffContext(handoffId));
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
console.error(`Failed to accept handoff ${handoffId}`);
|
|
316
|
+
}
|
|
317
|
+
process.exit(success ? 0 : 1);
|
|
318
|
+
break;
|
|
319
|
+
}
|
|
320
|
+
case 'swarm-complete-handoff': {
|
|
321
|
+
const handoffId = args[1] || '';
|
|
322
|
+
const resultJson = args[2];
|
|
323
|
+
let result;
|
|
324
|
+
if (resultJson) {
|
|
325
|
+
try {
|
|
326
|
+
result = JSON.parse(resultJson);
|
|
327
|
+
}
|
|
328
|
+
catch {
|
|
329
|
+
console.error('Error: Invalid result JSON');
|
|
330
|
+
process.exit(1);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
await swarmComm.initialize();
|
|
334
|
+
const success = swarmComm.completeHandoff(handoffId, result);
|
|
335
|
+
console.log(JSON.stringify({ handoffId, completed: success }));
|
|
336
|
+
process.exit(success ? 0 : 1);
|
|
337
|
+
break;
|
|
338
|
+
}
|
|
339
|
+
case 'swarm-handoffs': {
|
|
340
|
+
await swarmComm.initialize();
|
|
341
|
+
const handoffs = swarmComm.getPendingHandoffs();
|
|
342
|
+
console.log(JSON.stringify({
|
|
343
|
+
pendingCount: handoffs.length,
|
|
344
|
+
handoffs: handoffs.map(h => ({
|
|
345
|
+
id: h.id,
|
|
346
|
+
from: h.fromAgent,
|
|
347
|
+
description: h.description,
|
|
348
|
+
status: h.status,
|
|
349
|
+
timestamp: new Date(h.timestamp).toISOString(),
|
|
350
|
+
})),
|
|
351
|
+
}));
|
|
352
|
+
process.exit(0);
|
|
353
|
+
break;
|
|
354
|
+
}
|
|
355
|
+
case 'swarm-agents': {
|
|
356
|
+
await swarmComm.initialize();
|
|
357
|
+
const agents = swarmComm.getAgents();
|
|
358
|
+
console.log(JSON.stringify({
|
|
359
|
+
count: agents.length,
|
|
360
|
+
agents: agents.map(a => ({
|
|
361
|
+
id: a.id,
|
|
362
|
+
name: a.name,
|
|
363
|
+
status: a.status,
|
|
364
|
+
patternsShared: a.patternsShared,
|
|
365
|
+
handoffsReceived: a.handoffsReceived,
|
|
366
|
+
handoffsCompleted: a.handoffsCompleted,
|
|
367
|
+
})),
|
|
368
|
+
}));
|
|
369
|
+
process.exit(0);
|
|
370
|
+
break;
|
|
371
|
+
}
|
|
372
|
+
case 'swarm-stats': {
|
|
373
|
+
await swarmComm.initialize();
|
|
374
|
+
const stats = swarmComm.getStats();
|
|
375
|
+
console.log(JSON.stringify(stats, null, 2));
|
|
376
|
+
process.exit(0);
|
|
377
|
+
break;
|
|
378
|
+
}
|
|
379
|
+
case 'help':
|
|
380
|
+
case '--help':
|
|
381
|
+
case '-h':
|
|
382
|
+
printHelp();
|
|
383
|
+
process.exit(0);
|
|
384
|
+
break;
|
|
385
|
+
default:
|
|
386
|
+
console.error(`Unknown command: ${command}`);
|
|
387
|
+
console.error('Use --help for usage information');
|
|
388
|
+
process.exit(1);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
catch (error) {
|
|
392
|
+
console.error(`Error: ${error.message}`);
|
|
393
|
+
process.exit(1);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
function printHelp() {
|
|
397
|
+
console.log(`
|
|
398
|
+
@claude-flow/hooks - V3 Guidance System CLI
|
|
399
|
+
|
|
400
|
+
Usage: npx @claude-flow/hooks <command> [args]
|
|
401
|
+
|
|
402
|
+
Guidance Commands (for Claude hooks):
|
|
403
|
+
session-context Output project context for SessionStart hook
|
|
404
|
+
user-prompt <prompt> Analyze prompt and inject relevant guidance
|
|
405
|
+
pre-edit <path> Validate and guide before file edit
|
|
406
|
+
post-edit <path> Provide feedback after file edit
|
|
407
|
+
pre-command <cmd> Risk assessment for bash commands
|
|
408
|
+
route <task> Suggest optimal agent for task
|
|
409
|
+
stop-check Verify work complete before stopping
|
|
410
|
+
|
|
411
|
+
Pattern Management:
|
|
412
|
+
store <strategy> [domain] Store a new pattern
|
|
413
|
+
search <query> [k] Search for similar patterns
|
|
414
|
+
consolidate Deduplicate and promote patterns
|
|
415
|
+
stats Get learning statistics
|
|
416
|
+
export Export all patterns
|
|
417
|
+
|
|
418
|
+
Swarm Communication:
|
|
419
|
+
swarm-send <to> <content> [type] [priority]
|
|
420
|
+
Send message to agent (* for broadcast)
|
|
421
|
+
swarm-messages [limit] [type]
|
|
422
|
+
Get messages for this agent
|
|
423
|
+
swarm-broadcast <content> Broadcast context to all agents
|
|
424
|
+
|
|
425
|
+
Pattern Broadcasting:
|
|
426
|
+
swarm-pattern-broadcast <strategy> [domain]
|
|
427
|
+
Store and broadcast a pattern to swarm
|
|
428
|
+
swarm-patterns [domain] [minQuality]
|
|
429
|
+
List recent pattern broadcasts
|
|
430
|
+
swarm-import-pattern <broadcastId>
|
|
431
|
+
Import a broadcast pattern locally
|
|
432
|
+
|
|
433
|
+
Consensus Guidance:
|
|
434
|
+
swarm-consensus <question> <options> [timeout]
|
|
435
|
+
Initiate consensus (options: comma-separated)
|
|
436
|
+
swarm-vote <consensusId> <vote>
|
|
437
|
+
Vote on a consensus request
|
|
438
|
+
swarm-consensus-status [consensusId]
|
|
439
|
+
Get consensus status/guidance
|
|
440
|
+
|
|
441
|
+
Task Handoff:
|
|
442
|
+
swarm-handoff <toAgent> <description> [contextJson]
|
|
443
|
+
Initiate task handoff to another agent
|
|
444
|
+
swarm-accept-handoff <handoffId>
|
|
445
|
+
Accept a pending handoff
|
|
446
|
+
swarm-complete-handoff <handoffId> [resultJson]
|
|
447
|
+
Mark handoff as completed
|
|
448
|
+
swarm-handoffs List pending handoffs
|
|
449
|
+
|
|
450
|
+
Swarm Status:
|
|
451
|
+
swarm-agents List registered agents
|
|
452
|
+
swarm-stats Get swarm communication statistics
|
|
453
|
+
|
|
454
|
+
Exit Codes:
|
|
455
|
+
0 - Success (stdout added as context for Claude)
|
|
456
|
+
2 - Block (stderr shown to Claude as reason)
|
|
457
|
+
1 - Error
|
|
458
|
+
|
|
459
|
+
Examples:
|
|
460
|
+
# Session start guidance
|
|
461
|
+
npx @claude-flow/hooks session-context
|
|
462
|
+
|
|
463
|
+
# User prompt analysis
|
|
464
|
+
npx @claude-flow/hooks user-prompt "Fix authentication security vulnerability"
|
|
465
|
+
|
|
466
|
+
# Pre-edit security check
|
|
467
|
+
npx @claude-flow/hooks pre-edit "src/auth/login.ts"
|
|
468
|
+
|
|
469
|
+
# Agent routing
|
|
470
|
+
npx @claude-flow/hooks route "Implement HNSW vector search"
|
|
471
|
+
|
|
472
|
+
# Store a learned pattern
|
|
473
|
+
npx @claude-flow/hooks store "Use dependency injection for testability" architecture
|
|
474
|
+
|
|
475
|
+
# Broadcast pattern to swarm
|
|
476
|
+
npx @claude-flow/hooks swarm-pattern-broadcast "Use HNSW for 150x faster search" memory
|
|
477
|
+
|
|
478
|
+
# Initiate consensus
|
|
479
|
+
npx @claude-flow/hooks swarm-consensus "Which auth method?" "JWT,OAuth2,Session"
|
|
480
|
+
|
|
481
|
+
# Hand off task
|
|
482
|
+
npx @claude-flow/hooks swarm-handoff security-auditor "Review auth implementation"
|
|
483
|
+
`);
|
|
484
|
+
}
|
|
485
|
+
main().catch(console.error);
|
|
486
|
+
//# sourceMappingURL=guidance-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guidance-cli.js","sourceRoot":"","sources":["../../src/cli/guidance-cli.ts"],"names":[],"mappings":"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"}
|