Major changes: - Organized Python v1 implementation into v1/ subdirectory - Created Rust workspace with 9 modular crates: - wifi-densepose-core: Core types, traits, errors - wifi-densepose-signal: CSI processing, phase sanitization, FFT - wifi-densepose-nn: Neural network inference (ONNX/Candle/tch) - wifi-densepose-api: Axum-based REST/WebSocket API - wifi-densepose-db: SQLx database layer - wifi-densepose-config: Configuration management - wifi-densepose-hardware: Hardware abstraction - wifi-densepose-wasm: WebAssembly bindings - wifi-densepose-cli: Command-line interface Documentation: - ADR-001: Workspace structure - ADR-002: Signal processing library selection - ADR-003: Neural network inference strategy - DDD domain model with bounded contexts Testing: - 69 tests passing across all crates - Signal processing: 45 tests - Neural networks: 21 tests - Core: 3 doc tests Performance targets: - 10x faster CSI processing (~0.5ms vs ~5ms) - 5x lower memory usage (~100MB vs ~500MB) - WASM support for browser deployment
259 lines
6.7 KiB
JSON
259 lines
6.7 KiB
JSON
{
|
|
"hooks": {
|
|
"PreToolUse": [
|
|
{
|
|
"matcher": "^(Write|Edit|MultiEdit)$",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "[ -n \"$TOOL_INPUT_file_path\" ] && npx @claude-flow/cli@latest hooks pre-edit --file \"$TOOL_INPUT_file_path\" 2>/dev/null || true",
|
|
"timeout": 5000,
|
|
"continueOnError": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"matcher": "^Bash$",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "[ -n \"$TOOL_INPUT_command\" ] && npx @claude-flow/cli@latest hooks pre-command --command \"$TOOL_INPUT_command\" 2>/dev/null || true",
|
|
"timeout": 5000,
|
|
"continueOnError": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"matcher": "^Task$",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "[ -n \"$TOOL_INPUT_prompt\" ] && npx @claude-flow/cli@latest hooks pre-task --task-id \"task-$(date +%s)\" --description \"$TOOL_INPUT_prompt\" 2>/dev/null || true",
|
|
"timeout": 5000,
|
|
"continueOnError": true
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PostToolUse": [
|
|
{
|
|
"matcher": "^(Write|Edit|MultiEdit)$",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "[ -n \"$TOOL_INPUT_file_path\" ] && npx @claude-flow/cli@latest hooks post-edit --file \"$TOOL_INPUT_file_path\" --success \"${TOOL_SUCCESS:-true}\" 2>/dev/null || true",
|
|
"timeout": 5000,
|
|
"continueOnError": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"matcher": "^Bash$",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "[ -n \"$TOOL_INPUT_command\" ] && npx @claude-flow/cli@latest hooks post-command --command \"$TOOL_INPUT_command\" --success \"${TOOL_SUCCESS:-true}\" 2>/dev/null || true",
|
|
"timeout": 5000,
|
|
"continueOnError": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"matcher": "^Task$",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "[ -n \"$TOOL_RESULT_agent_id\" ] && npx @claude-flow/cli@latest hooks post-task --task-id \"$TOOL_RESULT_agent_id\" --success \"${TOOL_SUCCESS:-true}\" 2>/dev/null || true",
|
|
"timeout": 5000,
|
|
"continueOnError": true
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"UserPromptSubmit": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "[ -n \"$PROMPT\" ] && npx @claude-flow/cli@latest hooks route --task \"$PROMPT\" || true",
|
|
"timeout": 5000,
|
|
"continueOnError": true
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"SessionStart": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "npx @claude-flow/cli@latest daemon start --quiet 2>/dev/null || true",
|
|
"timeout": 5000,
|
|
"continueOnError": true
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "[ -n \"$SESSION_ID\" ] && npx @claude-flow/cli@latest hooks session-restore --session-id \"$SESSION_ID\" 2>/dev/null || true",
|
|
"timeout": 10000,
|
|
"continueOnError": true
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"Stop": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "echo '{\"ok\": true}'",
|
|
"timeout": 1000
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"Notification": [
|
|
{
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "[ -n \"$NOTIFICATION_MESSAGE\" ] && npx @claude-flow/cli@latest memory store --namespace notifications --key \"notify-$(date +%s)\" --value \"$NOTIFICATION_MESSAGE\" 2>/dev/null || true",
|
|
"timeout": 3000,
|
|
"continueOnError": true
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PermissionRequest": [
|
|
{
|
|
"matcher": "^mcp__claude-flow__.*$",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "echo '{\"decision\": \"allow\", \"reason\": \"claude-flow MCP tool auto-approved\"}'",
|
|
"timeout": 1000
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"matcher": "^Bash\\(npx @?claude-flow.*\\)$",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "echo '{\"decision\": \"allow\", \"reason\": \"claude-flow CLI auto-approved\"}'",
|
|
"timeout": 1000
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"statusLine": {
|
|
"type": "command",
|
|
"command": "npx @claude-flow/cli@latest hooks statusline 2>/dev/null || node .claude/helpers/statusline.cjs 2>/dev/null || echo \"▊ Claude Flow V3\"",
|
|
"refreshMs": 5000,
|
|
"enabled": true
|
|
},
|
|
"permissions": {
|
|
"allow": [
|
|
"Bash(npx claude-flow*)",
|
|
"Bash(npx @claude-flow/*)",
|
|
"mcp__claude-flow__*"
|
|
],
|
|
"deny": []
|
|
},
|
|
"claudeFlow": {
|
|
"version": "3.0.0",
|
|
"enabled": true,
|
|
"modelPreferences": {
|
|
"default": "claude-opus-4-5-20251101",
|
|
"routing": "claude-3-5-haiku-20241022"
|
|
},
|
|
"swarm": {
|
|
"topology": "hierarchical-mesh",
|
|
"maxAgents": 15
|
|
},
|
|
"memory": {
|
|
"backend": "hybrid",
|
|
"enableHNSW": true
|
|
},
|
|
"neural": {
|
|
"enabled": true
|
|
},
|
|
"daemon": {
|
|
"autoStart": true,
|
|
"workers": [
|
|
"map",
|
|
"audit",
|
|
"optimize",
|
|
"consolidate",
|
|
"testgaps",
|
|
"ultralearn",
|
|
"deepdive",
|
|
"document",
|
|
"refactor",
|
|
"benchmark"
|
|
],
|
|
"schedules": {
|
|
"audit": {
|
|
"interval": "1h",
|
|
"priority": "critical"
|
|
},
|
|
"optimize": {
|
|
"interval": "30m",
|
|
"priority": "high"
|
|
},
|
|
"consolidate": {
|
|
"interval": "2h",
|
|
"priority": "low"
|
|
},
|
|
"document": {
|
|
"interval": "1h",
|
|
"priority": "normal",
|
|
"triggers": [
|
|
"adr-update",
|
|
"api-change"
|
|
]
|
|
},
|
|
"deepdive": {
|
|
"interval": "4h",
|
|
"priority": "normal",
|
|
"triggers": [
|
|
"complex-change"
|
|
]
|
|
},
|
|
"ultralearn": {
|
|
"interval": "1h",
|
|
"priority": "normal"
|
|
}
|
|
}
|
|
},
|
|
"learning": {
|
|
"enabled": true,
|
|
"autoTrain": true,
|
|
"patterns": [
|
|
"coordination",
|
|
"optimization",
|
|
"prediction"
|
|
],
|
|
"retention": {
|
|
"shortTerm": "24h",
|
|
"longTerm": "30d"
|
|
}
|
|
},
|
|
"adr": {
|
|
"autoGenerate": true,
|
|
"directory": "/docs/adr",
|
|
"template": "madr"
|
|
},
|
|
"ddd": {
|
|
"trackDomains": true,
|
|
"validateBoundedContexts": true,
|
|
"directory": "/docs/ddd"
|
|
},
|
|
"security": {
|
|
"autoScan": true,
|
|
"scanOnEdit": true,
|
|
"cveCheck": true,
|
|
"threatModel": true
|
|
}
|
|
}
|
|
} |