kynjal-cli 3.1.4 → 4.0.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/.claude/agents/core/coder.md +1 -1
- package/.claude/agents/core/planner.md +2 -2
- package/.claude/agents/core/researcher.md +1 -1
- package/.claude/agents/core/reviewer.md +1 -1
- package/.claude/agents/core/tester.md +1 -1
- package/.claude/agents/data/data-ml-model.md +4 -4
- package/.claude/agents/development/dev-backend-api.md +4 -4
- package/.claude/agents/documentation/docs-api-openapi.md +4 -4
- package/.claude/agents/github/code-review-swarm.md +2 -2
- package/.claude/agents/github/issue-tracker.md +2 -2
- package/.claude/agents/github/pr-manager.md +2 -2
- package/.claude/agents/github/release-manager.md +2 -2
- package/.claude/agents/github/workflow-automation.md +2 -2
- package/.claude/agents/sparc/architecture.md +3 -3
- package/.claude/agents/sparc/pseudocode.md +2 -2
- package/.claude/agents/sparc/refinement.md +3 -3
- package/.claude/agents/sparc/specification.md +2 -2
- package/.claude/agents/swarm/adaptive-coordinator.md +1 -1
- package/.claude/agents/swarm/hierarchical-coordinator.md +1 -1
- package/.claude/agents/swarm/mesh-coordinator.md +1 -1
- package/.claude/agents/templates/base-template-generator.md +25 -4
- package/.claude/agents/templates/sparc-coordinator.md +3 -3
- package/.claude/helpers/auto-commit.sh +1 -1
- package/.claude/helpers/auto-memory-hook.mjs +27 -9
- package/.claude/helpers/hook-handler.cjs +58 -18
- package/.claude/helpers/statusline.cjs +420 -613
- package/.claude/helpers/statusline.js +3 -3
- package/.claude/settings.json +9 -9
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +2 -2
- package/.claude/skills/swarm-orchestration/SKILL.md +1 -1
- package/README.md +383 -170
- package/bin/cli.js +6 -6
- package/bin/mcp-server.js +1 -1
- package/bin/preinstall.cjs +2 -0
- package/dist/src/appliance/gguf-engine.d.ts +91 -0
- package/dist/src/appliance/gguf-engine.d.ts.map +1 -0
- package/dist/src/appliance/gguf-engine.js +425 -0
- package/dist/src/appliance/gguf-engine.js.map +1 -0
- package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
- package/dist/src/appliance/ruvllm-bridge.d.ts.map +1 -0
- package/dist/src/appliance/ruvllm-bridge.js +292 -0
- package/dist/src/appliance/ruvllm-bridge.js.map +1 -0
- package/dist/src/appliance/rvfa-builder.d.ts +44 -0
- package/dist/src/appliance/rvfa-builder.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-builder.js +329 -0
- package/dist/src/appliance/rvfa-builder.js.map +1 -0
- package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
- package/dist/src/appliance/rvfa-distribution.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-distribution.js +370 -0
- package/dist/src/appliance/rvfa-distribution.js.map +1 -0
- package/dist/src/appliance/rvfa-format.d.ts +111 -0
- package/dist/src/appliance/rvfa-format.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-format.js +393 -0
- package/dist/src/appliance/rvfa-format.js.map +1 -0
- package/dist/src/appliance/rvfa-runner.d.ts +69 -0
- package/dist/src/appliance/rvfa-runner.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-runner.js +237 -0
- package/dist/src/appliance/rvfa-runner.js.map +1 -0
- package/dist/src/appliance/rvfa-signing.d.ts +123 -0
- package/dist/src/appliance/rvfa-signing.d.ts.map +1 -0
- package/dist/src/appliance/rvfa-signing.js +347 -0
- package/dist/src/appliance/rvfa-signing.js.map +1 -0
- package/dist/src/commands/agent.d.ts.map +1 -1
- package/dist/src/commands/agent.js +121 -21
- package/dist/src/commands/agent.js.map +1 -1
- package/dist/src/commands/appliance-advanced.d.ts +9 -0
- package/dist/src/commands/appliance-advanced.d.ts.map +1 -0
- package/dist/src/commands/appliance-advanced.js +215 -0
- package/dist/src/commands/appliance-advanced.js.map +1 -0
- package/dist/src/commands/appliance.d.ts +8 -0
- package/dist/src/commands/appliance.d.ts.map +1 -0
- package/dist/src/commands/appliance.js +406 -0
- package/dist/src/commands/appliance.js.map +1 -0
- package/dist/src/commands/benchmark.js +2 -2
- package/dist/src/commands/benchmark.js.map +1 -1
- package/dist/src/commands/claims.js +1 -1
- package/dist/src/commands/claims.js.map +1 -1
- package/dist/src/commands/cleanup.d.ts +13 -0
- package/dist/src/commands/cleanup.d.ts.map +1 -0
- package/dist/src/commands/cleanup.js +218 -0
- package/dist/src/commands/cleanup.js.map +1 -0
- package/dist/src/commands/config.js +1 -1
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/daemon.d.ts.map +1 -1
- package/dist/src/commands/daemon.js +81 -18
- package/dist/src/commands/daemon.js.map +1 -1
- package/dist/src/commands/deployment.js +1 -1
- package/dist/src/commands/deployment.js.map +1 -1
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +99 -51
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/embeddings.js +1 -1
- package/dist/src/commands/embeddings.js.map +1 -1
- package/dist/src/commands/hive-mind.js +26 -26
- package/dist/src/commands/hive-mind.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +800 -100
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts +9 -2
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +20 -2
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init.d.ts +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +22 -18
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/mcp.d.ts.map +1 -1
- package/dist/src/commands/mcp.js +23 -5
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/memory.d.ts.map +1 -1
- package/dist/src/commands/memory.js +24 -0
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/neural.d.ts.map +1 -1
- package/dist/src/commands/neural.js +13 -7
- package/dist/src/commands/neural.js.map +1 -1
- package/dist/src/commands/performance.js +1 -1
- package/dist/src/commands/performance.js.map +1 -1
- package/dist/src/commands/plugins.js +1 -1
- package/dist/src/commands/plugins.js.map +1 -1
- package/dist/src/commands/providers.js +1 -1
- package/dist/src/commands/providers.js.map +1 -1
- package/dist/src/commands/ruvector/import.js +2 -2
- package/dist/src/commands/ruvector/import.js.map +1 -1
- package/dist/src/commands/ruvector/index.js +1 -1
- package/dist/src/commands/ruvector/index.js.map +1 -1
- package/dist/src/commands/ruvector/setup.js +6 -6
- package/dist/src/commands/security.d.ts.map +1 -1
- package/dist/src/commands/security.js +47 -16
- package/dist/src/commands/security.js.map +1 -1
- package/dist/src/commands/session.d.ts +1 -1
- package/dist/src/commands/session.js +1 -1
- package/dist/src/commands/start.d.ts +1 -1
- package/dist/src/commands/start.js +12 -12
- package/dist/src/commands/start.js.map +1 -1
- package/dist/src/commands/status.d.ts +1 -1
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +13 -6
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/commands/swarm.js +2 -2
- package/dist/src/commands/swarm.js.map +1 -1
- package/dist/src/commands/task.d.ts +1 -1
- package/dist/src/commands/task.js +1 -1
- package/dist/src/commands/transfer-store.js +1 -1
- package/dist/src/commands/transfer-store.js.map +1 -1
- package/dist/src/config-adapter.js +1 -1
- package/dist/src/config-adapter.js.map +1 -1
- package/dist/src/index.d.ts +4 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/claudemd-generator.js +30 -30
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +86 -101
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/helpers-generator.d.ts.map +1 -1
- package/dist/src/init/helpers-generator.js +96 -26
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/mcp-generator.d.ts +0 -1
- package/dist/src/init/mcp-generator.d.ts.map +1 -1
- package/dist/src/init/mcp-generator.js +34 -18
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +107 -41
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/statusline-generator.d.ts +16 -8
- package/dist/src/init/statusline-generator.d.ts.map +1 -1
- package/dist/src/init/statusline-generator.js +537 -1019
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/init/types.d.ts +14 -4
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/types.js +9 -2
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/mcp-client.d.ts.map +1 -1
- package/dist/src/mcp-client.js +10 -0
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-server.d.ts.map +1 -1
- package/dist/src/mcp-server.js +30 -4
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/agentdb-tools.d.ts +30 -0
- package/dist/src/mcp-tools/agentdb-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/agentdb-tools.js +557 -0
- package/dist/src/mcp-tools/agentdb-tools.js.map +1 -0
- package/dist/src/mcp-tools/browser-tools.js +2 -2
- package/dist/src/mcp-tools/browser-tools.js.map +1 -1
- package/dist/src/mcp-tools/config-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/config-tools.js +21 -2
- package/dist/src/mcp-tools/config-tools.js.map +1 -1
- package/dist/src/mcp-tools/coordination-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/coordination-tools.js +192 -13
- package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
- package/dist/src/mcp-tools/daa-tools.js +5 -5
- package/dist/src/mcp-tools/daa-tools.js.map +1 -1
- package/dist/src/mcp-tools/github-tools.js +2 -2
- package/dist/src/mcp-tools/github-tools.js.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hive-mind-tools.js +263 -35
- package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +355 -40
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/index.d.ts +2 -0
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +2 -0
- package/dist/src/mcp-tools/index.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +31 -1
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/neural-tools.js +32 -27
- package/dist/src/mcp-tools/neural-tools.js.map +1 -1
- package/dist/src/mcp-tools/performance-tools.js +1 -1
- package/dist/src/mcp-tools/performance-tools.js.map +1 -1
- package/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
- package/dist/src/mcp-tools/ruvllm-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/ruvllm-tools.js +283 -0
- package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -0
- package/dist/src/mcp-tools/swarm-tools.d.ts +2 -1
- package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/swarm-tools.js +216 -30
- package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
- package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/system-tools.js +109 -6
- package/dist/src/mcp-tools/system-tools.js.map +1 -1
- package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/task-tools.js +102 -0
- package/dist/src/mcp-tools/task-tools.js.map +1 -1
- package/dist/src/mcp-tools/wasm-agent-tools.d.ts +9 -0
- package/dist/src/mcp-tools/wasm-agent-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/wasm-agent-tools.js +230 -0
- package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -0
- package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/workflow-tools.js +91 -0
- package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
- package/dist/src/memory/ewc-consolidation.d.ts +24 -0
- package/dist/src/memory/ewc-consolidation.d.ts.map +1 -1
- package/dist/src/memory/ewc-consolidation.js +59 -0
- package/dist/src/memory/ewc-consolidation.js.map +1 -1
- package/dist/src/memory/intelligence.d.ts +53 -0
- package/dist/src/memory/intelligence.d.ts.map +1 -1
- package/dist/src/memory/intelligence.js +264 -7
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts +407 -0
- package/dist/src/memory/memory-bridge.d.ts.map +1 -0
- package/dist/src/memory/memory-bridge.js +1494 -0
- package/dist/src/memory/memory-bridge.js.map +1 -0
- package/dist/src/memory/memory-initializer.d.ts +17 -1
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +320 -42
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/output.d.ts.map +1 -1
- package/dist/src/output.js +1 -0
- package/dist/src/output.js.map +1 -1
- package/dist/src/parser.d.ts +10 -0
- package/dist/src/parser.d.ts.map +1 -1
- package/dist/src/parser.js +49 -3
- package/dist/src/parser.js.map +1 -1
- package/dist/src/plugins/manager.d.ts.map +1 -1
- package/dist/src/plugins/manager.js +31 -14
- package/dist/src/plugins/manager.js.map +1 -1
- package/dist/src/plugins/store/discovery.js +5 -5
- package/dist/src/plugins/store/discovery.js.map +1 -1
- package/dist/src/plugins/tests/standalone-test.js +4 -4
- package/dist/src/plugins/tests/standalone-test.js.map +1 -1
- package/dist/src/production/error-handler.js +1 -1
- package/dist/src/production/error-handler.js.map +1 -1
- package/dist/src/runtime/headless.d.ts +3 -3
- package/dist/src/runtime/headless.js +6 -6
- package/dist/src/runtime/headless.js.map +1 -1
- package/dist/src/ruvector/agent-wasm.d.ts +182 -0
- package/dist/src/ruvector/agent-wasm.d.ts.map +1 -0
- package/dist/src/ruvector/agent-wasm.js +316 -0
- package/dist/src/ruvector/agent-wasm.js.map +1 -0
- package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -1
- package/dist/src/ruvector/enhanced-model-router.js +25 -15
- package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
- package/dist/src/ruvector/index.d.ts +7 -1
- package/dist/src/ruvector/index.d.ts.map +1 -1
- package/dist/src/ruvector/index.js +17 -1
- package/dist/src/ruvector/index.js.map +1 -1
- package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
- package/dist/src/ruvector/ruvllm-wasm.d.ts.map +1 -0
- package/dist/src/ruvector/ruvllm-wasm.js +363 -0
- package/dist/src/ruvector/ruvllm-wasm.js.map +1 -0
- package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
- package/dist/src/services/agentic-flow-bridge.d.ts.map +1 -0
- package/dist/src/services/agentic-flow-bridge.js +95 -0
- package/dist/src/services/agentic-flow-bridge.js.map +1 -0
- package/dist/src/services/claim-service.js +1 -1
- package/dist/src/services/claim-service.js.map +1 -1
- package/dist/src/services/container-worker-pool.d.ts.map +1 -1
- package/dist/src/services/container-worker-pool.js +3 -1
- package/dist/src/services/container-worker-pool.js.map +1 -1
- package/dist/src/services/index.d.ts +1 -1
- package/dist/src/services/index.d.ts.map +1 -1
- package/dist/src/services/registry-api.d.ts +1 -1
- package/dist/src/services/registry-api.js +1 -1
- package/dist/src/services/ruvector-training.d.ts +11 -2
- package/dist/src/services/ruvector-training.d.ts.map +1 -1
- package/dist/src/services/ruvector-training.js +233 -43
- package/dist/src/services/ruvector-training.js.map +1 -1
- package/dist/src/services/worker-daemon.d.ts +28 -3
- package/dist/src/services/worker-daemon.d.ts.map +1 -1
- package/dist/src/services/worker-daemon.js +156 -17
- package/dist/src/services/worker-daemon.js.map +1 -1
- package/dist/src/services/worker-queue.d.ts.map +1 -1
- package/dist/src/services/worker-queue.js +2 -0
- package/dist/src/services/worker-queue.js.map +1 -1
- package/dist/src/transfer/deploy-seraphine.d.ts +1 -1
- package/dist/src/transfer/deploy-seraphine.js +4 -4
- package/dist/src/transfer/deploy-seraphine.js.map +1 -1
- package/dist/src/transfer/ipfs/client.d.ts.map +1 -1
- package/dist/src/transfer/ipfs/client.js +8 -0
- package/dist/src/transfer/ipfs/client.js.map +1 -1
- package/dist/src/transfer/ipfs/upload.d.ts.map +1 -1
- package/dist/src/transfer/ipfs/upload.js +0 -2
- package/dist/src/transfer/ipfs/upload.js.map +1 -1
- package/dist/src/transfer/models/seraphine.d.ts +1 -1
- package/dist/src/transfer/models/seraphine.js +5 -5
- package/dist/src/transfer/models/seraphine.js.map +1 -1
- package/dist/src/transfer/serialization/cfp.d.ts +1 -1
- package/dist/src/transfer/serialization/cfp.d.ts.map +1 -1
- package/dist/src/transfer/serialization/cfp.js +9 -6
- package/dist/src/transfer/serialization/cfp.js.map +1 -1
- package/dist/src/transfer/storage/gcs.d.ts.map +1 -1
- package/dist/src/transfer/storage/gcs.js +71 -29
- package/dist/src/transfer/storage/gcs.js.map +1 -1
- package/dist/src/transfer/store/discovery.js +4 -4
- package/dist/src/transfer/store/discovery.js.map +1 -1
- package/dist/src/transfer/store/registry.js +1 -1
- package/dist/src/transfer/store/registry.js.map +1 -1
- package/dist/src/transfer/store/tests/standalone-test.js +4 -4
- package/dist/src/transfer/store/tests/standalone-test.js.map +1 -1
- package/dist/src/transfer/types.d.ts +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/types.js +1 -1
- package/dist/src/update/validator.js +1 -1
- package/dist/src/update/validator.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -10
- package/.claude/agents/custom/accessibility-auditor.yaml +0 -56
- package/.claude/agents/custom/design-architect.yaml +0 -48
- package/.claude/agents/custom/ui-developer.yaml +0 -46
- package/.claude/agents/custom/ux-researcher.yaml +0 -60
|
@@ -8,12 +8,12 @@ import { generateStatuslineScript, generateStatuslineHook } from './statusline-g
|
|
|
8
8
|
*/
|
|
9
9
|
export function generatePreCommitHook() {
|
|
10
10
|
return `#!/bin/bash
|
|
11
|
-
#
|
|
11
|
+
# Ruflo Pre-Commit Hook
|
|
12
12
|
# Validates code quality before commit
|
|
13
13
|
|
|
14
14
|
set -e
|
|
15
15
|
|
|
16
|
-
echo "🔍 Running
|
|
16
|
+
echo "🔍 Running Ruflo pre-commit checks..."
|
|
17
17
|
|
|
18
18
|
# Get staged files
|
|
19
19
|
STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM)
|
|
@@ -22,7 +22,7 @@ STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM)
|
|
|
22
22
|
for FILE in $STAGED_FILES; do
|
|
23
23
|
if [[ "$FILE" =~ \\.(ts|js|tsx|jsx)$ ]]; then
|
|
24
24
|
echo " Validating: $FILE"
|
|
25
|
-
npx @
|
|
25
|
+
npx @claude-flow/cli hooks pre-edit --file "$FILE" --validate-syntax 2>/dev/null || true
|
|
26
26
|
fi
|
|
27
27
|
done
|
|
28
28
|
|
|
@@ -40,7 +40,7 @@ echo "✅ Pre-commit checks complete"
|
|
|
40
40
|
*/
|
|
41
41
|
export function generatePostCommitHook() {
|
|
42
42
|
return `#!/bin/bash
|
|
43
|
-
#
|
|
43
|
+
# Ruflo Post-Commit Hook
|
|
44
44
|
# Records commit metrics and trains patterns
|
|
45
45
|
|
|
46
46
|
COMMIT_HASH=$(git rev-parse HEAD)
|
|
@@ -48,8 +48,8 @@ COMMIT_MSG=$(git log -1 --pretty=%B)
|
|
|
48
48
|
|
|
49
49
|
echo "📊 Recording commit metrics..."
|
|
50
50
|
|
|
51
|
-
# Notify
|
|
52
|
-
npx @
|
|
51
|
+
# Notify ruflo of commit
|
|
52
|
+
npx ruflo@latest hooks notify \\
|
|
53
53
|
--message "Commit: $COMMIT_MSG" \\
|
|
54
54
|
--level info \\
|
|
55
55
|
--metadata '{"hash": "'$COMMIT_HASH'"}' 2>/dev/null || true
|
|
@@ -63,7 +63,7 @@ echo "✅ Commit recorded"
|
|
|
63
63
|
export function generateSessionManager() {
|
|
64
64
|
return `#!/usr/bin/env node
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
66
|
+
* Ruflo Session Manager
|
|
67
67
|
* Handles session lifecycle: start, restore, end
|
|
68
68
|
*/
|
|
69
69
|
|
|
@@ -196,7 +196,7 @@ module.exports = commands;
|
|
|
196
196
|
export function generateAgentRouter() {
|
|
197
197
|
return `#!/usr/bin/env node
|
|
198
198
|
/**
|
|
199
|
-
*
|
|
199
|
+
* Ruflo Agent Router
|
|
200
200
|
* Routes tasks to optimal agents based on learned patterns
|
|
201
201
|
*/
|
|
202
202
|
|
|
@@ -268,7 +268,7 @@ module.exports = { routeTask, AGENT_CAPABILITIES, TASK_PATTERNS };
|
|
|
268
268
|
export function generateMemoryHelper() {
|
|
269
269
|
return `#!/usr/bin/env node
|
|
270
270
|
/**
|
|
271
|
-
*
|
|
271
|
+
* Ruflo Memory Helper
|
|
272
272
|
* Simple key-value memory for cross-session context
|
|
273
273
|
*/
|
|
274
274
|
|
|
@@ -361,7 +361,7 @@ export function generateHookHandler() {
|
|
|
361
361
|
const lines = [
|
|
362
362
|
'#!/usr/bin/env node',
|
|
363
363
|
'/**',
|
|
364
|
-
' *
|
|
364
|
+
' * Ruflo Hook Handler (Cross-Platform)',
|
|
365
365
|
' * Dispatches hook events to the appropriate helper modules.',
|
|
366
366
|
' */',
|
|
367
367
|
'',
|
|
@@ -397,7 +397,35 @@ export function generateHookHandler() {
|
|
|
397
397
|
"const intelligence = safeRequire(path.join(helpersDir, 'intelligence.cjs'));",
|
|
398
398
|
'',
|
|
399
399
|
'const [,, command, ...args] = process.argv;',
|
|
400
|
-
|
|
400
|
+
'',
|
|
401
|
+
'// Read stdin with timeout — Claude Code sends hook data as JSON via stdin.',
|
|
402
|
+
'// Timeout prevents hanging when stdin is in an ambiguous state (not TTY, not pipe).',
|
|
403
|
+
'async function readStdin() {',
|
|
404
|
+
' if (process.stdin.isTTY) return "";',
|
|
405
|
+
' return new Promise((resolve) => {',
|
|
406
|
+
' let data = "";',
|
|
407
|
+
' const timer = setTimeout(() => {',
|
|
408
|
+
' process.stdin.removeAllListeners();',
|
|
409
|
+
' process.stdin.pause();',
|
|
410
|
+
' resolve(data);',
|
|
411
|
+
' }, 500);',
|
|
412
|
+
' process.stdin.setEncoding("utf8");',
|
|
413
|
+
' process.stdin.on("data", (chunk) => { data += chunk; });',
|
|
414
|
+
' process.stdin.on("end", () => { clearTimeout(timer); resolve(data); });',
|
|
415
|
+
' process.stdin.on("error", () => { clearTimeout(timer); resolve(data); });',
|
|
416
|
+
' process.stdin.resume();',
|
|
417
|
+
' });',
|
|
418
|
+
'}',
|
|
419
|
+
'',
|
|
420
|
+
'async function main() {',
|
|
421
|
+
' let stdinData = "";',
|
|
422
|
+
' try { stdinData = await readStdin(); } catch (e) { /* ignore */ }',
|
|
423
|
+
' let hookInput = {};',
|
|
424
|
+
' if (stdinData.trim()) {',
|
|
425
|
+
' try { hookInput = JSON.parse(stdinData); } catch (e) { /* ignore */ }',
|
|
426
|
+
' }',
|
|
427
|
+
' // Prefer stdin fields, then env, then argv',
|
|
428
|
+
" var prompt = hookInput.prompt || hookInput.command || hookInput.toolInput || process.env.PROMPT || process.env.TOOL_INPUT_command || args.join(' ') || '';",
|
|
401
429
|
'',
|
|
402
430
|
'const handlers = {',
|
|
403
431
|
" 'route': () => {",
|
|
@@ -550,6 +578,10 @@ export function generateHookHandler() {
|
|
|
550
578
|
'} else {',
|
|
551
579
|
" console.log('Usage: hook-handler.cjs <route|pre-bash|post-edit|session-restore|session-end|pre-task|post-task|compact-manual|compact-auto|status|stats>');",
|
|
552
580
|
'}',
|
|
581
|
+
'} // end main',
|
|
582
|
+
'',
|
|
583
|
+
'process.exitCode = 0;',
|
|
584
|
+
'main().catch(() => {}).finally(() => { process.exit(0); });',
|
|
553
585
|
];
|
|
554
586
|
return lines.join('\n') + '\n';
|
|
555
587
|
}
|
|
@@ -631,7 +663,8 @@ export function generateIntelligenceStub() {
|
|
|
631
663
|
' var items = fs.readdirSync(candidates[i], { withFileTypes: true, recursive: true });',
|
|
632
664
|
' for (var j = 0; j < items.length; j++) {',
|
|
633
665
|
' if (items[j].name === "MEMORY.md") {',
|
|
634
|
-
' var
|
|
666
|
+
' var parentDir = items[j].parentPath || items[j].path || candidates[i];',
|
|
667
|
+
' var fp = path.join(parentDir, items[j].name);',
|
|
635
668
|
' files.push(fp);',
|
|
636
669
|
' }',
|
|
637
670
|
' }',
|
|
@@ -663,15 +696,24 @@ export function generateIntelligenceStub() {
|
|
|
663
696
|
'// Load entries from auto-memory-store or bootstrap from MEMORY.md',
|
|
664
697
|
'function loadEntries() {',
|
|
665
698
|
' var store = readJSON(STORE_PATH);',
|
|
666
|
-
'
|
|
667
|
-
'
|
|
699
|
+
' // Support both formats: flat array or { entries: [...] }',
|
|
700
|
+
' var entries = null;',
|
|
701
|
+
' if (store) {',
|
|
702
|
+
' if (Array.isArray(store) && store.length > 0) {',
|
|
703
|
+
' entries = store;',
|
|
704
|
+
' } else if (store.entries && store.entries.length > 0) {',
|
|
705
|
+
' entries = store.entries;',
|
|
706
|
+
' }',
|
|
707
|
+
' }',
|
|
708
|
+
' if (entries) {',
|
|
709
|
+
' return entries.map(function(e, i) {',
|
|
668
710
|
' return {',
|
|
669
711
|
' id: e.id || ("entry-" + i),',
|
|
670
712
|
' content: e.content || e.value || "",',
|
|
671
713
|
' summary: e.summary || e.key || "",',
|
|
672
714
|
' category: e.category || e.namespace || "default",',
|
|
673
715
|
' confidence: e.confidence || 0.5,',
|
|
674
|
-
' sourceFile: e.sourceFile || "",',
|
|
716
|
+
' sourceFile: e.sourceFile || (e.metadata && e.metadata.sourceFile) || "",',
|
|
675
717
|
' words: tokenize((e.content || e.value || "") + " " + (e.summary || e.key || "")),',
|
|
676
718
|
' };',
|
|
677
719
|
' });',
|
|
@@ -794,10 +836,34 @@ const dim = (msg) => console.log(\` \${DIM}\${msg}\${RESET}\`);
|
|
|
794
836
|
// Ensure data dir
|
|
795
837
|
if (!existsSync(DATA_DIR)) mkdirSync(DATA_DIR, { recursive: true });
|
|
796
838
|
|
|
839
|
+
async function loadMemoryPackage() {
|
|
840
|
+
// Strategy 1: Use createRequire for CJS-style resolution (handles nested node_modules
|
|
841
|
+
// when installed as a transitive dependency via npx ruflo / npx claude-flow)
|
|
842
|
+
try {
|
|
843
|
+
const { createRequire } = await import('module');
|
|
844
|
+
const require = createRequire(join(PROJECT_ROOT, 'package.json'));
|
|
845
|
+
return require('@claude-flow/memory');
|
|
846
|
+
} catch { /* fall through */ }
|
|
847
|
+
|
|
848
|
+
// Strategy 2: ESM import (works when @claude-flow/memory is a direct dependency)
|
|
849
|
+
try { return await import('@claude-flow/memory'); } catch { /* fall through */ }
|
|
850
|
+
|
|
851
|
+
// Strategy 3: Walk up from PROJECT_ROOT looking for the package in any node_modules
|
|
852
|
+
let searchDir = PROJECT_ROOT;
|
|
853
|
+
const { parse } = await import('path');
|
|
854
|
+
while (searchDir !== parse(searchDir).root) {
|
|
855
|
+
const candidate = join(searchDir, 'node_modules', '@claude-flow', 'memory', 'dist', 'index.js');
|
|
856
|
+
if (existsSync(candidate)) {
|
|
857
|
+
try { return await import(\`file://\${candidate}\`); } catch { /* fall through */ }
|
|
858
|
+
}
|
|
859
|
+
searchDir = dirname(searchDir);
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
return null;
|
|
863
|
+
}
|
|
864
|
+
|
|
797
865
|
async function doImport() {
|
|
798
|
-
|
|
799
|
-
let memPkg = null;
|
|
800
|
-
try { memPkg = await import('@claude-flow/memory'); } catch {}
|
|
866
|
+
const memPkg = await loadMemoryPackage();
|
|
801
867
|
|
|
802
868
|
if (!memPkg || !memPkg.AutoMemoryBridge) {
|
|
803
869
|
dim('Memory package not available — auto memory import skipped (non-critical)');
|
|
@@ -814,8 +880,7 @@ async function doSync() {
|
|
|
814
880
|
return;
|
|
815
881
|
}
|
|
816
882
|
|
|
817
|
-
|
|
818
|
-
try { memPkg = await import('@claude-flow/memory'); } catch {}
|
|
883
|
+
const memPkg = await loadMemoryPackage();
|
|
819
884
|
|
|
820
885
|
if (!memPkg || !memPkg.AutoMemoryBridge) {
|
|
821
886
|
dim('Memory package not available — sync skipped (non-critical)');
|
|
@@ -832,6 +897,9 @@ function doStatus() {
|
|
|
832
897
|
console.log('');
|
|
833
898
|
}
|
|
834
899
|
|
|
900
|
+
// Suppress unhandled rejection warnings from dynamic import() failures
|
|
901
|
+
process.on('unhandledRejection', () => {});
|
|
902
|
+
|
|
835
903
|
const command = process.argv[2] || 'status';
|
|
836
904
|
|
|
837
905
|
try {
|
|
@@ -847,13 +915,15 @@ try {
|
|
|
847
915
|
// Hooks must never crash Claude Code - fail silently
|
|
848
916
|
dim(\`Error (non-critical): \${err.message}\`);
|
|
849
917
|
}
|
|
918
|
+
// Ensure clean exit for Claude Code hooks (exit 0 = success)
|
|
919
|
+
process.exit(0);
|
|
850
920
|
`;
|
|
851
921
|
}
|
|
852
922
|
/**
|
|
853
923
|
* Generate Windows PowerShell daemon manager
|
|
854
924
|
*/
|
|
855
925
|
export function generateWindowsDaemonManager() {
|
|
856
|
-
return `#
|
|
926
|
+
return `# RuFlo V3 Daemon Manager for Windows
|
|
857
927
|
# PowerShell script for managing background processes
|
|
858
928
|
|
|
859
929
|
param(
|
|
@@ -919,7 +989,7 @@ function Stop-SwarmMonitor {
|
|
|
919
989
|
|
|
920
990
|
function Show-Status {
|
|
921
991
|
Write-Host ""
|
|
922
|
-
Write-Host "
|
|
992
|
+
Write-Host "RuFlo V3 Daemon Status" -ForegroundColor Cyan
|
|
923
993
|
Write-Host "=============================" -ForegroundColor Cyan
|
|
924
994
|
|
|
925
995
|
$swarmPid = Join-Path $PidDir 'swarm-monitor.pid'
|
|
@@ -959,7 +1029,7 @@ switch ($Action) {
|
|
|
959
1029
|
*/
|
|
960
1030
|
export function generateWindowsBatchWrapper() {
|
|
961
1031
|
return `@echo off
|
|
962
|
-
REM
|
|
1032
|
+
REM RuFlo V3 - Windows Batch Wrapper
|
|
963
1033
|
REM Routes to PowerShell daemon manager
|
|
964
1034
|
|
|
965
1035
|
PowerShell -ExecutionPolicy Bypass -File "%~dp0daemon-manager.ps1" %*
|
|
@@ -971,7 +1041,7 @@ PowerShell -ExecutionPolicy Bypass -File "%~dp0daemon-manager.ps1" %*
|
|
|
971
1041
|
export function generateCrossPlatformSessionManager() {
|
|
972
1042
|
return `#!/usr/bin/env node
|
|
973
1043
|
/**
|
|
974
|
-
*
|
|
1044
|
+
* Ruflo Cross-Platform Session Manager
|
|
975
1045
|
* Works on Windows, macOS, and Linux
|
|
976
1046
|
*/
|
|
977
1047
|
|
|
@@ -992,9 +1062,9 @@ function getDataDir() {
|
|
|
992
1062
|
|
|
993
1063
|
switch (platform) {
|
|
994
1064
|
case 'win32':
|
|
995
|
-
return path.join(process.env.APPDATA || homeDir, '
|
|
1065
|
+
return path.join(process.env.APPDATA || homeDir, 'claude-flow', 'sessions');
|
|
996
1066
|
case 'darwin':
|
|
997
|
-
return path.join(homeDir, 'Library', 'Application Support', '
|
|
1067
|
+
return path.join(homeDir, 'Library', 'Application Support', 'claude-flow', 'sessions');
|
|
998
1068
|
default:
|
|
999
1069
|
return path.join(homeDir, '.claude-flow', 'sessions');
|
|
1000
1070
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers-generator.js","sourceRoot":"","sources":["../../../src/init/helpers-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAE7F;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BR,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;;;CAgBR,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HR,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkER,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFR,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IACjC,4EAA4E;IAC5E,MAAM,KAAK,GAAG;QACZ,qBAAqB;QACrB,KAAK;QACL,
|
|
1
|
+
{"version":3,"file":"helpers-generator.js","sourceRoot":"","sources":["../../../src/init/helpers-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,6 @@ export declare function generateMCPConfig(options: InitOptions): object;
|
|
|
14
14
|
export declare function generateMCPJson(options: InitOptions): string;
|
|
15
15
|
/**
|
|
16
16
|
* Generate MCP server add commands for manual setup
|
|
17
|
-
* Windows uses 'cmd /c' wrapper for npx execution
|
|
18
17
|
*/
|
|
19
18
|
export declare function generateMCPCommands(options: InitOptions): string[];
|
|
20
19
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-generator.d.ts","sourceRoot":"","sources":["../../../src/init/mcp-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-generator.d.ts","sourceRoot":"","sources":["../../../src/init/mcp-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;AAqCzD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CA2C9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE,CA2BlE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAW5E"}
|
|
@@ -11,20 +11,22 @@ function isWindows() {
|
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Generate platform-specific MCP server entry
|
|
14
|
-
* Windows
|
|
14
|
+
* - Windows: uses 'cmd /c npx' directly
|
|
15
|
+
* - Unix: uses 'npx' directly (simple, reliable)
|
|
15
16
|
*/
|
|
16
17
|
function createMCPServerEntry(npxArgs, env, additionalProps = {}) {
|
|
17
18
|
if (isWindows()) {
|
|
18
19
|
return {
|
|
19
20
|
command: 'cmd',
|
|
20
|
-
args: ['/c', 'npx', ...npxArgs],
|
|
21
|
+
args: ['/c', 'npx', '-y', ...npxArgs],
|
|
21
22
|
env,
|
|
22
23
|
...additionalProps,
|
|
23
24
|
};
|
|
24
25
|
}
|
|
26
|
+
// Unix: direct npx invocation — simple and reliable
|
|
25
27
|
return {
|
|
26
28
|
command: 'npx',
|
|
27
|
-
args: npxArgs,
|
|
29
|
+
args: ['-y', ...npxArgs],
|
|
28
30
|
env,
|
|
29
31
|
...additionalProps,
|
|
30
32
|
};
|
|
@@ -35,9 +37,13 @@ function createMCPServerEntry(npxArgs, env, additionalProps = {}) {
|
|
|
35
37
|
export function generateMCPConfig(options) {
|
|
36
38
|
const config = options.mcp;
|
|
37
39
|
const mcpServers = {};
|
|
38
|
-
|
|
40
|
+
const npmEnv = {
|
|
41
|
+
npm_config_update_notifier: 'false',
|
|
42
|
+
};
|
|
43
|
+
// Claude Flow MCP server (core)
|
|
39
44
|
if (config.claudeFlow) {
|
|
40
|
-
mcpServers['
|
|
45
|
+
mcpServers['claude-flow'] = createMCPServerEntry(['@claude-flow/cli@latest', 'mcp', 'start'], {
|
|
46
|
+
...npmEnv,
|
|
41
47
|
CLAUDE_FLOW_MODE: 'v3',
|
|
42
48
|
CLAUDE_FLOW_HOOKS_ENABLED: 'true',
|
|
43
49
|
CLAUDE_FLOW_TOPOLOGY: options.runtime.topology,
|
|
@@ -47,11 +53,11 @@ export function generateMCPConfig(options) {
|
|
|
47
53
|
}
|
|
48
54
|
// Ruv-Swarm MCP server (enhanced coordination)
|
|
49
55
|
if (config.ruvSwarm) {
|
|
50
|
-
mcpServers['ruv-swarm'] = createMCPServerEntry(['ruv-swarm', 'mcp', 'start'], {}, { optional: true });
|
|
56
|
+
mcpServers['ruv-swarm'] = createMCPServerEntry(['ruv-swarm', 'mcp', 'start'], { ...npmEnv }, { optional: true });
|
|
51
57
|
}
|
|
52
58
|
// Flow Nexus MCP server (cloud features)
|
|
53
59
|
if (config.flowNexus) {
|
|
54
|
-
mcpServers['flow-nexus'] = createMCPServerEntry(['flow-nexus@latest', 'mcp', 'start'], {}, { optional: true, requiresAuth: true });
|
|
60
|
+
mcpServers['flow-nexus'] = createMCPServerEntry(['flow-nexus@latest', 'mcp', 'start'], { ...npmEnv }, { optional: true, requiresAuth: true });
|
|
55
61
|
}
|
|
56
62
|
return { mcpServers };
|
|
57
63
|
}
|
|
@@ -64,21 +70,31 @@ export function generateMCPJson(options) {
|
|
|
64
70
|
}
|
|
65
71
|
/**
|
|
66
72
|
* Generate MCP server add commands for manual setup
|
|
67
|
-
* Windows uses 'cmd /c' wrapper for npx execution
|
|
68
73
|
*/
|
|
69
74
|
export function generateMCPCommands(options) {
|
|
70
75
|
const commands = [];
|
|
71
76
|
const config = options.mcp;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
if (isWindows()) {
|
|
78
|
+
if (config.claudeFlow) {
|
|
79
|
+
commands.push('claude mcp add claude-flow -- cmd /c npx -y @claude-flow/cli@latest mcp start');
|
|
80
|
+
}
|
|
81
|
+
if (config.ruvSwarm) {
|
|
82
|
+
commands.push('claude mcp add ruv-swarm -- cmd /c npx -y ruv-swarm mcp start');
|
|
83
|
+
}
|
|
84
|
+
if (config.flowNexus) {
|
|
85
|
+
commands.push('claude mcp add flow-nexus -- cmd /c npx -y flow-nexus@latest mcp start');
|
|
86
|
+
}
|
|
79
87
|
}
|
|
80
|
-
|
|
81
|
-
|
|
88
|
+
else {
|
|
89
|
+
if (config.claudeFlow) {
|
|
90
|
+
commands.push("claude mcp add claude-flow -- npx -y @claude-flow/cli@latest mcp start");
|
|
91
|
+
}
|
|
92
|
+
if (config.ruvSwarm) {
|
|
93
|
+
commands.push("claude mcp add ruv-swarm -- npx -y ruv-swarm mcp start");
|
|
94
|
+
}
|
|
95
|
+
if (config.flowNexus) {
|
|
96
|
+
commands.push("claude mcp add flow-nexus -- npx -y flow-nexus@latest mcp start");
|
|
97
|
+
}
|
|
82
98
|
}
|
|
83
99
|
return commands;
|
|
84
100
|
}
|
|
@@ -94,7 +110,7 @@ export function getPlatformInstructions() {
|
|
|
94
110
|
}
|
|
95
111
|
return {
|
|
96
112
|
platform: process.platform === 'darwin' ? 'macOS' : 'Linux',
|
|
97
|
-
note: 'MCP configuration uses
|
|
113
|
+
note: 'MCP configuration uses npx directly.',
|
|
98
114
|
};
|
|
99
115
|
}
|
|
100
116
|
//# sourceMappingURL=mcp-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-generator.js","sourceRoot":"","sources":["../../../src/init/mcp-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,SAAS,SAAS;IAChB,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AACtC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"mcp-generator.js","sourceRoot":"","sources":["../../../src/init/mcp-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-generator.d.ts","sourceRoot":"","sources":["../../../src/init/settings-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"settings-generator.d.ts","sourceRoot":"","sources":["../../../src/init/settings-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAA6B,MAAM,YAAY,CAAC;AAGzE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAuJ7D;AAyQD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAGjE"}
|