claude-flow 3.25.6 → 3.26.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/.claude/helpers/.helpers-version +1 -1
- package/.claude/helpers/helpers.manifest.json +5 -4
- package/.claude/helpers/hook-handler.cjs +129 -0
- package/.claude/helpers/intelligence.cjs +10 -0
- package/.claude/helpers/statusline.cjs +300 -123
- package/.claude/proven-config.json +1 -1
- package/.claude/security-scans/scan-all-standard.json +321 -0
- package/.claude/security-scans/scan-code-deep.json +1209 -0
- package/.claude/security-scans/scan-deps-full.json +14 -0
- package/package.json +3 -1
- package/v3/@claude-flow/cli/catalog-manifest.json +12 -0
- package/v3/@claude-flow/cli/dist/src/commands/advisor.d.ts +15 -0
- package/v3/@claude-flow/cli/dist/src/commands/advisor.js +94 -0
- package/v3/@claude-flow/cli/dist/src/commands/doctor.js +77 -3
- package/v3/@claude-flow/cli/dist/src/commands/funnel.d.ts +13 -0
- package/v3/@claude-flow/cli/dist/src/commands/funnel.js +103 -0
- package/v3/@claude-flow/cli/dist/src/commands/hooks.js +112 -46
- package/v3/@claude-flow/cli/dist/src/commands/index.js +10 -0
- package/v3/@claude-flow/cli/dist/src/commands/init.js +44 -0
- package/v3/@claude-flow/cli/dist/src/commands/proxy.d.ts +21 -0
- package/v3/@claude-flow/cli/dist/src/commands/proxy.js +310 -0
- package/v3/@claude-flow/cli/dist/src/commands/security.js +29 -0
- package/v3/@claude-flow/cli/dist/src/commands/settings.d.ts +19 -0
- package/v3/@claude-flow/cli/dist/src/commands/settings.js +180 -0
- package/v3/@claude-flow/cli/dist/src/commands/version.d.ts +42 -0
- package/v3/@claude-flow/cli/dist/src/commands/version.js +106 -0
- package/v3/@claude-flow/cli/dist/src/funnel/advisor-tip.d.ts +58 -0
- package/v3/@claude-flow/cli/dist/src/funnel/advisor-tip.js +92 -0
- package/v3/@claude-flow/cli/dist/src/funnel/attribution.d.ts +37 -0
- package/v3/@claude-flow/cli/dist/src/funnel/attribution.js +101 -0
- package/v3/@claude-flow/cli/dist/src/funnel/consent.d.ts +22 -0
- package/v3/@claude-flow/cli/dist/src/funnel/consent.js +55 -0
- package/v3/@claude-flow/cli/dist/src/funnel/credit-errors.d.ts +31 -0
- package/v3/@claude-flow/cli/dist/src/funnel/credit-errors.js +88 -0
- package/v3/@claude-flow/cli/dist/src/funnel/credit-notifier.d.ts +44 -0
- package/v3/@claude-flow/cli/dist/src/funnel/credit-notifier.js +74 -0
- package/v3/@claude-flow/cli/dist/src/funnel/disclosure.d.ts +46 -0
- package/v3/@claude-flow/cli/dist/src/funnel/disclosure.js +97 -0
- package/v3/@claude-flow/cli/dist/src/funnel/enrollment.d.ts +36 -0
- package/v3/@claude-flow/cli/dist/src/funnel/enrollment.js +64 -0
- package/v3/@claude-flow/cli/dist/src/funnel/environment.d.ts +17 -0
- package/v3/@claude-flow/cli/dist/src/funnel/environment.js +39 -0
- package/v3/@claude-flow/cli/dist/src/funnel/event-transport.d.ts +51 -0
- package/v3/@claude-flow/cli/dist/src/funnel/event-transport.js +199 -0
- package/v3/@claude-flow/cli/dist/src/funnel/events.d.ts +42 -0
- package/v3/@claude-flow/cli/dist/src/funnel/events.js +150 -0
- package/v3/@claude-flow/cli/dist/src/funnel/index.d.ts +20 -0
- package/v3/@claude-flow/cli/dist/src/funnel/index.js +20 -0
- package/v3/@claude-flow/cli/dist/src/funnel/insights.d.ts +49 -0
- package/v3/@claude-flow/cli/dist/src/funnel/insights.js +120 -0
- package/v3/@claude-flow/cli/dist/src/funnel/local-signals.d.ts +15 -0
- package/v3/@claude-flow/cli/dist/src/funnel/local-signals.js +68 -0
- package/v3/@claude-flow/cli/dist/src/funnel/message-transport.d.ts +51 -0
- package/v3/@claude-flow/cli/dist/src/funnel/message-transport.js +149 -0
- package/v3/@claude-flow/cli/dist/src/funnel/messages.d.ts +55 -0
- package/v3/@claude-flow/cli/dist/src/funnel/messages.js +160 -0
- package/v3/@claude-flow/cli/dist/src/funnel/power-saver-notifier.d.ts +44 -0
- package/v3/@claude-flow/cli/dist/src/funnel/power-saver-notifier.js +92 -0
- package/v3/@claude-flow/cli/dist/src/funnel/precedence.d.ts +16 -0
- package/v3/@claude-flow/cli/dist/src/funnel/precedence.js +85 -0
- package/v3/@claude-flow/cli/dist/src/funnel/promo.d.ts +41 -0
- package/v3/@claude-flow/cli/dist/src/funnel/promo.js +144 -0
- package/v3/@claude-flow/cli/dist/src/funnel/rate-limit-notifier.d.ts +55 -0
- package/v3/@claude-flow/cli/dist/src/funnel/rate-limit-notifier.js +102 -0
- package/v3/@claude-flow/cli/dist/src/funnel/rotation.d.ts +19 -0
- package/v3/@claude-flow/cli/dist/src/funnel/rotation.js +70 -0
- package/v3/@claude-flow/cli/dist/src/funnel/state.d.ts +13 -0
- package/v3/@claude-flow/cli/dist/src/funnel/state.js +52 -0
- package/v3/@claude-flow/cli/dist/src/funnel/toggle-cooldown.d.ts +17 -0
- package/v3/@claude-flow/cli/dist/src/funnel/toggle-cooldown.js +32 -0
- package/v3/@claude-flow/cli/dist/src/funnel/types.d.ts +86 -0
- package/v3/@claude-flow/cli/dist/src/funnel/types.js +26 -0
- package/v3/@claude-flow/cli/dist/src/init/executor.js +9 -3
- package/v3/@claude-flow/cli/dist/src/init/helper-refresh.d.ts +33 -2
- package/v3/@claude-flow/cli/dist/src/init/helper-refresh.js +102 -12
- package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +52 -0
- package/v3/@claude-flow/cli/dist/src/init/statusline-generator.js +282 -116
- package/v3/@claude-flow/cli/dist/src/services/daemon-autostart.js +28 -5
- package/v3/@claude-flow/cli/dist/src/services/fable-harness.d.ts +39 -0
- package/v3/@claude-flow/cli/dist/src/services/fable-harness.js +41 -0
- package/v3/@claude-flow/cli/package.json +13 -4
- package/.claude/coordinator/config.json +0 -24
- package/.claude/coordinator/state.json +0 -37
- package/.claude/coordinator/tick-log/tick-01.json +0 -17
- package/.claude/coordinator/tick-log/tick-02.json +0 -17
- package/.claude/coordinator/tick-log/tick-03.json +0 -17
- package/.claude/coordinator/tick-log/tick-04.json +0 -14
- package/.claude/coordinator/tick-log/tick-05.json +0 -16
- package/.claude/settings.local.json +0 -11
- package/v3/@claude-flow/cli/dist/src/ruvector/lattice-wasm.d.ts +0 -14
- package/v3/@claude-flow/cli/dist/src/ruvector/lattice-wasm.js +0 -144
- package/v3/@claude-flow/guidance/dist/adversarial.d.ts +0 -284
- package/v3/@claude-flow/guidance/dist/adversarial.js +0 -572
- package/v3/@claude-flow/guidance/dist/analyzer.d.ts +0 -530
- package/v3/@claude-flow/guidance/dist/analyzer.js +0 -2587
- package/v3/@claude-flow/guidance/dist/artifacts.d.ts +0 -283
- package/v3/@claude-flow/guidance/dist/artifacts.js +0 -356
- package/v3/@claude-flow/guidance/dist/authority.d.ts +0 -290
- package/v3/@claude-flow/guidance/dist/authority.js +0 -558
- package/v3/@claude-flow/guidance/dist/capabilities.d.ts +0 -209
- package/v3/@claude-flow/guidance/dist/capabilities.js +0 -485
- package/v3/@claude-flow/guidance/dist/coherence.d.ts +0 -233
- package/v3/@claude-flow/guidance/dist/coherence.js +0 -372
- package/v3/@claude-flow/guidance/dist/compiler.d.ts +0 -87
- package/v3/@claude-flow/guidance/dist/compiler.js +0 -410
- package/v3/@claude-flow/guidance/dist/conformance-kit.d.ts +0 -225
- package/v3/@claude-flow/guidance/dist/conformance-kit.js +0 -629
- package/v3/@claude-flow/guidance/dist/continue-gate.d.ts +0 -214
- package/v3/@claude-flow/guidance/dist/continue-gate.js +0 -353
- package/v3/@claude-flow/guidance/dist/crypto-utils.d.ts +0 -17
- package/v3/@claude-flow/guidance/dist/crypto-utils.js +0 -24
- package/v3/@claude-flow/guidance/dist/evolution.d.ts +0 -282
- package/v3/@claude-flow/guidance/dist/evolution.js +0 -500
- package/v3/@claude-flow/guidance/dist/gates.d.ts +0 -79
- package/v3/@claude-flow/guidance/dist/gates.js +0 -302
- package/v3/@claude-flow/guidance/dist/gateway.d.ts +0 -206
- package/v3/@claude-flow/guidance/dist/gateway.js +0 -452
- package/v3/@claude-flow/guidance/dist/generators.d.ts +0 -153
- package/v3/@claude-flow/guidance/dist/generators.js +0 -682
- package/v3/@claude-flow/guidance/dist/headless.d.ts +0 -177
- package/v3/@claude-flow/guidance/dist/headless.js +0 -342
- package/v3/@claude-flow/guidance/dist/hooks.d.ts +0 -109
- package/v3/@claude-flow/guidance/dist/hooks.js +0 -347
- package/v3/@claude-flow/guidance/dist/index.d.ts +0 -205
- package/v3/@claude-flow/guidance/dist/index.js +0 -321
- package/v3/@claude-flow/guidance/dist/ledger.d.ts +0 -162
- package/v3/@claude-flow/guidance/dist/ledger.js +0 -375
- package/v3/@claude-flow/guidance/dist/manifest-validator.d.ts +0 -289
- package/v3/@claude-flow/guidance/dist/manifest-validator.js +0 -838
- package/v3/@claude-flow/guidance/dist/memory-gate.d.ts +0 -222
- package/v3/@claude-flow/guidance/dist/memory-gate.js +0 -382
- package/v3/@claude-flow/guidance/dist/meta-governance.d.ts +0 -265
- package/v3/@claude-flow/guidance/dist/meta-governance.js +0 -348
- package/v3/@claude-flow/guidance/dist/optimizer.d.ts +0 -104
- package/v3/@claude-flow/guidance/dist/optimizer.js +0 -329
- package/v3/@claude-flow/guidance/dist/persistence.d.ts +0 -189
- package/v3/@claude-flow/guidance/dist/persistence.js +0 -464
- package/v3/@claude-flow/guidance/dist/proof.d.ts +0 -185
- package/v3/@claude-flow/guidance/dist/proof.js +0 -238
- package/v3/@claude-flow/guidance/dist/retriever.d.ts +0 -172
- package/v3/@claude-flow/guidance/dist/retriever.js +0 -596
- package/v3/@claude-flow/guidance/dist/ruvbot-integration.d.ts +0 -370
- package/v3/@claude-flow/guidance/dist/ruvbot-integration.js +0 -738
- package/v3/@claude-flow/guidance/dist/temporal.d.ts +0 -426
- package/v3/@claude-flow/guidance/dist/temporal.js +0 -658
- package/v3/@claude-flow/guidance/dist/trust.d.ts +0 -283
- package/v3/@claude-flow/guidance/dist/trust.js +0 -473
- package/v3/@claude-flow/guidance/dist/truth-anchors.d.ts +0 -276
- package/v3/@claude-flow/guidance/dist/truth-anchors.js +0 -488
- package/v3/@claude-flow/guidance/dist/types.d.ts +0 -378
- package/v3/@claude-flow/guidance/dist/types.js +0 -10
- package/v3/@claude-flow/guidance/dist/uncertainty.d.ts +0 -372
- package/v3/@claude-flow/guidance/dist/uncertainty.js +0 -619
- package/v3/@claude-flow/guidance/dist/wasm-kernel.d.ts +0 -48
- package/v3/@claude-flow/guidance/dist/wasm-kernel.js +0 -158
- package/v3/@claude-flow/shared/dist/core/config/defaults.d.ts +0 -41
- package/v3/@claude-flow/shared/dist/core/config/defaults.js +0 -186
- package/v3/@claude-flow/shared/dist/core/config/index.d.ts +0 -8
- package/v3/@claude-flow/shared/dist/core/config/index.js +0 -12
- package/v3/@claude-flow/shared/dist/core/config/loader.d.ts +0 -45
- package/v3/@claude-flow/shared/dist/core/config/loader.js +0 -238
- package/v3/@claude-flow/shared/dist/core/config/schema.d.ts +0 -1728
- package/v3/@claude-flow/shared/dist/core/config/schema.js +0 -160
- package/v3/@claude-flow/shared/dist/core/config/validator.d.ts +0 -92
- package/v3/@claude-flow/shared/dist/core/config/validator.js +0 -147
- package/v3/@claude-flow/shared/dist/core/event-bus.d.ts +0 -31
- package/v3/@claude-flow/shared/dist/core/event-bus.js +0 -197
- package/v3/@claude-flow/shared/dist/core/index.d.ts +0 -15
- package/v3/@claude-flow/shared/dist/core/index.js +0 -19
- package/v3/@claude-flow/shared/dist/core/interfaces/agent.interface.d.ts +0 -200
- package/v3/@claude-flow/shared/dist/core/interfaces/agent.interface.js +0 -6
- package/v3/@claude-flow/shared/dist/core/interfaces/coordinator.interface.d.ts +0 -310
- package/v3/@claude-flow/shared/dist/core/interfaces/coordinator.interface.js +0 -7
- package/v3/@claude-flow/shared/dist/core/interfaces/event.interface.d.ts +0 -224
- package/v3/@claude-flow/shared/dist/core/interfaces/event.interface.js +0 -46
- package/v3/@claude-flow/shared/dist/core/interfaces/index.d.ts +0 -10
- package/v3/@claude-flow/shared/dist/core/interfaces/index.js +0 -15
- package/v3/@claude-flow/shared/dist/core/interfaces/memory.interface.d.ts +0 -298
- package/v3/@claude-flow/shared/dist/core/interfaces/memory.interface.js +0 -7
- package/v3/@claude-flow/shared/dist/core/interfaces/task.interface.d.ts +0 -185
- package/v3/@claude-flow/shared/dist/core/interfaces/task.interface.js +0 -6
- package/v3/@claude-flow/shared/dist/core/orchestrator/event-coordinator.d.ts +0 -35
- package/v3/@claude-flow/shared/dist/core/orchestrator/event-coordinator.js +0 -101
- package/v3/@claude-flow/shared/dist/core/orchestrator/health-monitor.d.ts +0 -60
- package/v3/@claude-flow/shared/dist/core/orchestrator/health-monitor.js +0 -166
- package/v3/@claude-flow/shared/dist/core/orchestrator/index.d.ts +0 -46
- package/v3/@claude-flow/shared/dist/core/orchestrator/index.js +0 -64
- package/v3/@claude-flow/shared/dist/core/orchestrator/lifecycle-manager.d.ts +0 -56
- package/v3/@claude-flow/shared/dist/core/orchestrator/lifecycle-manager.js +0 -195
- package/v3/@claude-flow/shared/dist/core/orchestrator/session-manager.d.ts +0 -83
- package/v3/@claude-flow/shared/dist/core/orchestrator/session-manager.js +0 -193
- package/v3/@claude-flow/shared/dist/core/orchestrator/task-manager.d.ts +0 -49
- package/v3/@claude-flow/shared/dist/core/orchestrator/task-manager.js +0 -253
- package/v3/@claude-flow/shared/dist/events/domain-events.d.ts +0 -282
- package/v3/@claude-flow/shared/dist/events/domain-events.js +0 -165
- package/v3/@claude-flow/shared/dist/events/event-store.d.ts +0 -126
- package/v3/@claude-flow/shared/dist/events/event-store.js +0 -427
- package/v3/@claude-flow/shared/dist/events/event-store.test.d.ts +0 -8
- package/v3/@claude-flow/shared/dist/events/event-store.test.js +0 -293
- package/v3/@claude-flow/shared/dist/events/example-usage.d.ts +0 -10
- package/v3/@claude-flow/shared/dist/events/example-usage.js +0 -193
- package/v3/@claude-flow/shared/dist/events/index.d.ts +0 -21
- package/v3/@claude-flow/shared/dist/events/index.js +0 -22
- package/v3/@claude-flow/shared/dist/events/projections.d.ts +0 -177
- package/v3/@claude-flow/shared/dist/events/projections.js +0 -421
- package/v3/@claude-flow/shared/dist/events/rvf-event-log.d.ts +0 -82
- package/v3/@claude-flow/shared/dist/events/rvf-event-log.js +0 -340
- package/v3/@claude-flow/shared/dist/events/state-reconstructor.d.ts +0 -101
- package/v3/@claude-flow/shared/dist/events/state-reconstructor.js +0 -263
- package/v3/@claude-flow/shared/dist/events.d.ts +0 -80
- package/v3/@claude-flow/shared/dist/events.js +0 -249
- package/v3/@claude-flow/shared/dist/hooks/example-usage.d.ts +0 -42
- package/v3/@claude-flow/shared/dist/hooks/example-usage.js +0 -351
- package/v3/@claude-flow/shared/dist/hooks/executor.d.ts +0 -100
- package/v3/@claude-flow/shared/dist/hooks/executor.js +0 -267
- package/v3/@claude-flow/shared/dist/hooks/hooks.test.d.ts +0 -9
- package/v3/@claude-flow/shared/dist/hooks/hooks.test.js +0 -322
- package/v3/@claude-flow/shared/dist/hooks/index.d.ts +0 -52
- package/v3/@claude-flow/shared/dist/hooks/index.js +0 -51
- package/v3/@claude-flow/shared/dist/hooks/registry.d.ts +0 -133
- package/v3/@claude-flow/shared/dist/hooks/registry.js +0 -277
- package/v3/@claude-flow/shared/dist/hooks/safety/bash-safety.d.ts +0 -105
- package/v3/@claude-flow/shared/dist/hooks/safety/bash-safety.js +0 -481
- package/v3/@claude-flow/shared/dist/hooks/safety/file-organization.d.ts +0 -144
- package/v3/@claude-flow/shared/dist/hooks/safety/file-organization.js +0 -328
- package/v3/@claude-flow/shared/dist/hooks/safety/git-commit.d.ts +0 -158
- package/v3/@claude-flow/shared/dist/hooks/safety/git-commit.js +0 -450
- package/v3/@claude-flow/shared/dist/hooks/safety/index.d.ts +0 -17
- package/v3/@claude-flow/shared/dist/hooks/safety/index.js +0 -17
- package/v3/@claude-flow/shared/dist/hooks/session-hooks.d.ts +0 -234
- package/v3/@claude-flow/shared/dist/hooks/session-hooks.js +0 -334
- package/v3/@claude-flow/shared/dist/hooks/task-hooks.d.ts +0 -163
- package/v3/@claude-flow/shared/dist/hooks/task-hooks.js +0 -326
- package/v3/@claude-flow/shared/dist/hooks/types.d.ts +0 -267
- package/v3/@claude-flow/shared/dist/hooks/types.js +0 -62
- package/v3/@claude-flow/shared/dist/hooks/verify-exports.test.d.ts +0 -9
- package/v3/@claude-flow/shared/dist/hooks/verify-exports.test.js +0 -93
- package/v3/@claude-flow/shared/dist/index.d.ts +0 -20
- package/v3/@claude-flow/shared/dist/index.js +0 -50
- package/v3/@claude-flow/shared/dist/mcp/connection-pool.d.ts +0 -98
- package/v3/@claude-flow/shared/dist/mcp/connection-pool.js +0 -364
- package/v3/@claude-flow/shared/dist/mcp/index.d.ts +0 -69
- package/v3/@claude-flow/shared/dist/mcp/index.js +0 -84
- package/v3/@claude-flow/shared/dist/mcp/server.d.ts +0 -166
- package/v3/@claude-flow/shared/dist/mcp/server.js +0 -590
- package/v3/@claude-flow/shared/dist/mcp/session-manager.d.ts +0 -136
- package/v3/@claude-flow/shared/dist/mcp/session-manager.js +0 -335
- package/v3/@claude-flow/shared/dist/mcp/tool-registry.d.ts +0 -178
- package/v3/@claude-flow/shared/dist/mcp/tool-registry.js +0 -439
- package/v3/@claude-flow/shared/dist/mcp/transport/http.d.ts +0 -104
- package/v3/@claude-flow/shared/dist/mcp/transport/http.js +0 -476
- package/v3/@claude-flow/shared/dist/mcp/transport/index.d.ts +0 -102
- package/v3/@claude-flow/shared/dist/mcp/transport/index.js +0 -238
- package/v3/@claude-flow/shared/dist/mcp/transport/stdio.d.ts +0 -104
- package/v3/@claude-flow/shared/dist/mcp/transport/stdio.js +0 -263
- package/v3/@claude-flow/shared/dist/mcp/transport/websocket.d.ts +0 -133
- package/v3/@claude-flow/shared/dist/mcp/transport/websocket.js +0 -396
- package/v3/@claude-flow/shared/dist/mcp/types.d.ts +0 -436
- package/v3/@claude-flow/shared/dist/mcp/types.js +0 -54
- package/v3/@claude-flow/shared/dist/plugin-interface.d.ts +0 -544
- package/v3/@claude-flow/shared/dist/plugin-interface.js +0 -23
- package/v3/@claude-flow/shared/dist/plugin-loader.d.ts +0 -139
- package/v3/@claude-flow/shared/dist/plugin-loader.js +0 -434
- package/v3/@claude-flow/shared/dist/plugin-registry.d.ts +0 -183
- package/v3/@claude-flow/shared/dist/plugin-registry.js +0 -457
- package/v3/@claude-flow/shared/dist/plugins/index.d.ts +0 -10
- package/v3/@claude-flow/shared/dist/plugins/index.js +0 -10
- package/v3/@claude-flow/shared/dist/plugins/official/hive-mind-plugin.d.ts +0 -106
- package/v3/@claude-flow/shared/dist/plugins/official/hive-mind-plugin.js +0 -241
- package/v3/@claude-flow/shared/dist/plugins/official/index.d.ts +0 -10
- package/v3/@claude-flow/shared/dist/plugins/official/index.js +0 -10
- package/v3/@claude-flow/shared/dist/plugins/official/maestro-plugin.d.ts +0 -121
- package/v3/@claude-flow/shared/dist/plugins/official/maestro-plugin.js +0 -355
- package/v3/@claude-flow/shared/dist/plugins/types.d.ts +0 -93
- package/v3/@claude-flow/shared/dist/plugins/types.js +0 -9
- package/v3/@claude-flow/shared/dist/resilience/bulkhead.d.ts +0 -105
- package/v3/@claude-flow/shared/dist/resilience/bulkhead.js +0 -206
- package/v3/@claude-flow/shared/dist/resilience/circuit-breaker.d.ts +0 -132
- package/v3/@claude-flow/shared/dist/resilience/circuit-breaker.js +0 -233
- package/v3/@claude-flow/shared/dist/resilience/index.d.ts +0 -19
- package/v3/@claude-flow/shared/dist/resilience/index.js +0 -19
- package/v3/@claude-flow/shared/dist/resilience/rate-limiter.d.ts +0 -168
- package/v3/@claude-flow/shared/dist/resilience/rate-limiter.js +0 -314
- package/v3/@claude-flow/shared/dist/resilience/retry.d.ts +0 -91
- package/v3/@claude-flow/shared/dist/resilience/retry.js +0 -159
- package/v3/@claude-flow/shared/dist/security/index.d.ts +0 -10
- package/v3/@claude-flow/shared/dist/security/index.js +0 -12
- package/v3/@claude-flow/shared/dist/security/input-validation.d.ts +0 -73
- package/v3/@claude-flow/shared/dist/security/input-validation.js +0 -201
- package/v3/@claude-flow/shared/dist/security/secure-random.d.ts +0 -92
- package/v3/@claude-flow/shared/dist/security/secure-random.js +0 -142
- package/v3/@claude-flow/shared/dist/services/index.d.ts +0 -7
- package/v3/@claude-flow/shared/dist/services/index.js +0 -7
- package/v3/@claude-flow/shared/dist/services/v3-progress.service.d.ts +0 -124
- package/v3/@claude-flow/shared/dist/services/v3-progress.service.js +0 -402
- package/v3/@claude-flow/shared/dist/types/agent.types.d.ts +0 -137
- package/v3/@claude-flow/shared/dist/types/agent.types.js +0 -6
- package/v3/@claude-flow/shared/dist/types/index.d.ts +0 -11
- package/v3/@claude-flow/shared/dist/types/index.js +0 -17
- package/v3/@claude-flow/shared/dist/types/mcp.types.d.ts +0 -266
- package/v3/@claude-flow/shared/dist/types/mcp.types.js +0 -7
- package/v3/@claude-flow/shared/dist/types/memory.types.d.ts +0 -236
- package/v3/@claude-flow/shared/dist/types/memory.types.js +0 -7
- package/v3/@claude-flow/shared/dist/types/swarm.types.d.ts +0 -186
- package/v3/@claude-flow/shared/dist/types/swarm.types.js +0 -65
- package/v3/@claude-flow/shared/dist/types/task.types.d.ts +0 -178
- package/v3/@claude-flow/shared/dist/types/task.types.js +0 -32
- package/v3/@claude-flow/shared/dist/types.d.ts +0 -197
- package/v3/@claude-flow/shared/dist/types.js +0 -21
- package/v3/@claude-flow/shared/dist/utils/secure-logger.d.ts +0 -69
- package/v3/@claude-flow/shared/dist/utils/secure-logger.js +0 -208
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WASM Kernel Host Bridge
|
|
3
|
-
*
|
|
4
|
-
* Layer B: Node host runtime that calls into the Rust WASM kernel (Layer A).
|
|
5
|
-
* All WASM calls go through this bridge. If the WASM module fails to load,
|
|
6
|
-
* the bridge transparently falls back to the JavaScript implementations.
|
|
7
|
-
*
|
|
8
|
-
* Key rule: The host calls the kernel once per event with a batch payload,
|
|
9
|
-
* not thousands of tiny calls.
|
|
10
|
-
*
|
|
11
|
-
* @module @claude-flow/guidance/wasm-kernel
|
|
12
|
-
*/
|
|
13
|
-
import { createHash, createHmac } from 'node:crypto';
|
|
14
|
-
// ============================================================================
|
|
15
|
-
// WASM Loader
|
|
16
|
-
// ============================================================================
|
|
17
|
-
let wasmModule = null;
|
|
18
|
-
let loadAttempted = false;
|
|
19
|
-
function tryLoadWasm() {
|
|
20
|
-
if (loadAttempted)
|
|
21
|
-
return wasmModule;
|
|
22
|
-
loadAttempted = true;
|
|
23
|
-
try {
|
|
24
|
-
// Dynamic require — works in Node.js, gracefully fails elsewhere
|
|
25
|
-
const path = new URL('../wasm-pkg/guidance_kernel.js', import.meta.url);
|
|
26
|
-
// Use createRequire for ESM compatibility
|
|
27
|
-
const { createRequire } = require('node:module');
|
|
28
|
-
const requireFn = createRequire(import.meta.url);
|
|
29
|
-
wasmModule = requireFn(path.pathname);
|
|
30
|
-
// Initialize kernel
|
|
31
|
-
if (wasmModule && typeof wasmModule.kernel_init === 'function') {
|
|
32
|
-
wasmModule.kernel_init();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
// WASM not available — fall back to JS
|
|
37
|
-
wasmModule = null;
|
|
38
|
-
}
|
|
39
|
-
return wasmModule;
|
|
40
|
-
}
|
|
41
|
-
// ============================================================================
|
|
42
|
-
// JS Fallback Implementations
|
|
43
|
-
// ============================================================================
|
|
44
|
-
function jsSha256(input) {
|
|
45
|
-
return createHash('sha256').update(input).digest('hex');
|
|
46
|
-
}
|
|
47
|
-
function jsHmacSha256(key, input) {
|
|
48
|
-
return createHmac('sha256', key).update(input).digest('hex');
|
|
49
|
-
}
|
|
50
|
-
function jsContentHash(jsonInput) {
|
|
51
|
-
try {
|
|
52
|
-
const parsed = JSON.parse(jsonInput);
|
|
53
|
-
const sorted = sortKeys(parsed);
|
|
54
|
-
return jsSha256(JSON.stringify(sorted));
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
return jsSha256(jsonInput);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
function sortKeys(value) {
|
|
61
|
-
if (value === null || typeof value !== 'object')
|
|
62
|
-
return value;
|
|
63
|
-
if (Array.isArray(value))
|
|
64
|
-
return value.map(sortKeys);
|
|
65
|
-
const sorted = {};
|
|
66
|
-
for (const key of Object.keys(value).sort()) {
|
|
67
|
-
sorted[key] = sortKeys(value[key]);
|
|
68
|
-
}
|
|
69
|
-
return sorted;
|
|
70
|
-
}
|
|
71
|
-
// ============================================================================
|
|
72
|
-
// Kernel singleton
|
|
73
|
-
// ============================================================================
|
|
74
|
-
let kernelInstance = null;
|
|
75
|
-
/**
|
|
76
|
-
* Get the WASM kernel instance. Automatically falls back to JS if WASM is
|
|
77
|
-
* unavailable. Thread-safe (single initialization).
|
|
78
|
-
*/
|
|
79
|
-
export function getKernel() {
|
|
80
|
-
if (kernelInstance)
|
|
81
|
-
return kernelInstance;
|
|
82
|
-
const wasm = tryLoadWasm();
|
|
83
|
-
if (wasm) {
|
|
84
|
-
kernelInstance = {
|
|
85
|
-
available: true,
|
|
86
|
-
version: wasm.kernel_init(),
|
|
87
|
-
sha256: (input) => wasm.sha256(input),
|
|
88
|
-
hmacSha256: (key, input) => wasm.hmac_sha256(key, input),
|
|
89
|
-
contentHash: (jsonInput) => wasm.content_hash(jsonInput),
|
|
90
|
-
signEnvelope: (key, envelopeJson) => wasm.sign_envelope(key, envelopeJson),
|
|
91
|
-
verifyChain: (chainJson, key) => wasm.verify_chain(chainJson, key),
|
|
92
|
-
scanSecrets: (content) => {
|
|
93
|
-
const json = wasm.scan_secrets(content);
|
|
94
|
-
try {
|
|
95
|
-
return JSON.parse(json);
|
|
96
|
-
}
|
|
97
|
-
catch {
|
|
98
|
-
return [];
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
detectDestructive: (command) => {
|
|
102
|
-
const result = wasm.detect_destructive(command);
|
|
103
|
-
return result === '' ? null : result;
|
|
104
|
-
},
|
|
105
|
-
batchProcess: (ops) => {
|
|
106
|
-
const json = wasm.batch_process(JSON.stringify(ops));
|
|
107
|
-
try {
|
|
108
|
-
return JSON.parse(json);
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
111
|
-
return [];
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
// JS fallback — identical outputs, just slower
|
|
118
|
-
kernelInstance = {
|
|
119
|
-
available: false,
|
|
120
|
-
version: 'js-fallback',
|
|
121
|
-
sha256: jsSha256,
|
|
122
|
-
hmacSha256: jsHmacSha256,
|
|
123
|
-
contentHash: jsContentHash,
|
|
124
|
-
signEnvelope: jsHmacSha256,
|
|
125
|
-
verifyChain: () => {
|
|
126
|
-
// Chain verification requires full envelope parsing — not implemented
|
|
127
|
-
// in JS fallback because the ProofChain class already does it.
|
|
128
|
-
throw new Error('verifyChain not available in JS fallback; use ProofChain.verifyChain()');
|
|
129
|
-
},
|
|
130
|
-
scanSecrets: () => {
|
|
131
|
-
// Gate scanning in JS fallback defers to EnforcementGates class
|
|
132
|
-
throw new Error('scanSecrets not available in JS fallback; use EnforcementGates');
|
|
133
|
-
},
|
|
134
|
-
detectDestructive: () => {
|
|
135
|
-
throw new Error('detectDestructive not available in JS fallback; use EnforcementGates');
|
|
136
|
-
},
|
|
137
|
-
batchProcess: () => {
|
|
138
|
-
throw new Error('batchProcess requires WASM kernel');
|
|
139
|
-
},
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
return kernelInstance;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Check if the WASM kernel is available without initializing it.
|
|
146
|
-
*/
|
|
147
|
-
export function isWasmAvailable() {
|
|
148
|
-
return getKernel().available;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Reset the kernel instance (for testing).
|
|
152
|
-
*/
|
|
153
|
-
export function resetKernel() {
|
|
154
|
-
kernelInstance = null;
|
|
155
|
-
wasmModule = null;
|
|
156
|
-
loadAttempted = false;
|
|
157
|
-
}
|
|
158
|
-
//# sourceMappingURL=wasm-kernel.js.map
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V3 Default Configuration Values
|
|
3
|
-
*/
|
|
4
|
-
import type { AgentConfig, TaskConfig, SwarmConfig, MemoryConfig, MCPServerConfig, OrchestratorConfig, SystemConfig } from './schema.js';
|
|
5
|
-
/**
|
|
6
|
-
* Default agent configuration
|
|
7
|
-
*/
|
|
8
|
-
export declare const defaultAgentConfig: Partial<AgentConfig>;
|
|
9
|
-
/**
|
|
10
|
-
* Default task configuration
|
|
11
|
-
*/
|
|
12
|
-
export declare const defaultTaskConfig: Partial<TaskConfig>;
|
|
13
|
-
/**
|
|
14
|
-
* Default swarm configuration (core version)
|
|
15
|
-
*/
|
|
16
|
-
export declare const defaultSwarmConfigCore: SwarmConfig;
|
|
17
|
-
/**
|
|
18
|
-
* Default memory configuration (hybrid backend - ADR-009)
|
|
19
|
-
*/
|
|
20
|
-
export declare const defaultMemoryConfig: MemoryConfig;
|
|
21
|
-
/**
|
|
22
|
-
* Default MCP server configuration
|
|
23
|
-
*/
|
|
24
|
-
export declare const defaultMCPServerConfig: MCPServerConfig;
|
|
25
|
-
/**
|
|
26
|
-
* Default orchestrator configuration
|
|
27
|
-
*/
|
|
28
|
-
export declare const defaultOrchestratorConfig: OrchestratorConfig;
|
|
29
|
-
/**
|
|
30
|
-
* Default full system configuration
|
|
31
|
-
*/
|
|
32
|
-
export declare const defaultSystemConfig: SystemConfig;
|
|
33
|
-
/**
|
|
34
|
-
* Agent type presets
|
|
35
|
-
*/
|
|
36
|
-
export declare const agentTypePresets: Record<string, Partial<AgentConfig>>;
|
|
37
|
-
/**
|
|
38
|
-
* Get merged configuration with defaults
|
|
39
|
-
*/
|
|
40
|
-
export declare function mergeWithDefaults<T extends Record<string, unknown>>(config: Partial<T>, defaults: T): T;
|
|
41
|
-
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V3 Default Configuration Values
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Default agent configuration
|
|
6
|
-
*/
|
|
7
|
-
export const defaultAgentConfig = {
|
|
8
|
-
capabilities: [],
|
|
9
|
-
maxConcurrentTasks: 5,
|
|
10
|
-
priority: 50,
|
|
11
|
-
retryPolicy: {
|
|
12
|
-
maxRetries: 3,
|
|
13
|
-
backoffMs: 1000,
|
|
14
|
-
backoffMultiplier: 2,
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Default task configuration
|
|
19
|
-
*/
|
|
20
|
-
export const defaultTaskConfig = {
|
|
21
|
-
priority: 50,
|
|
22
|
-
metadata: {
|
|
23
|
-
maxRetries: 3,
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Default swarm configuration (core version)
|
|
28
|
-
*/
|
|
29
|
-
export const defaultSwarmConfigCore = {
|
|
30
|
-
topology: 'hierarchical-mesh',
|
|
31
|
-
maxAgents: 20,
|
|
32
|
-
autoScale: {
|
|
33
|
-
enabled: false,
|
|
34
|
-
minAgents: 1,
|
|
35
|
-
maxAgents: 20,
|
|
36
|
-
scaleUpThreshold: 0.8,
|
|
37
|
-
scaleDownThreshold: 0.3,
|
|
38
|
-
},
|
|
39
|
-
coordination: {
|
|
40
|
-
consensusRequired: false,
|
|
41
|
-
timeoutMs: 10000,
|
|
42
|
-
retryPolicy: {
|
|
43
|
-
maxRetries: 3,
|
|
44
|
-
backoffMs: 500,
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
communication: {
|
|
48
|
-
protocol: 'events',
|
|
49
|
-
batchSize: 10,
|
|
50
|
-
flushIntervalMs: 100,
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* Default memory configuration (hybrid backend - ADR-009)
|
|
55
|
-
*/
|
|
56
|
-
export const defaultMemoryConfig = {
|
|
57
|
-
type: 'hybrid',
|
|
58
|
-
path: './data/memory',
|
|
59
|
-
sqlite: {
|
|
60
|
-
inMemory: false,
|
|
61
|
-
wal: true,
|
|
62
|
-
},
|
|
63
|
-
agentdb: {
|
|
64
|
-
dimensions: 1536,
|
|
65
|
-
indexType: 'hnsw',
|
|
66
|
-
efConstruction: 200,
|
|
67
|
-
m: 16,
|
|
68
|
-
quantization: 'none',
|
|
69
|
-
},
|
|
70
|
-
hybrid: {
|
|
71
|
-
vectorThreshold: 100,
|
|
72
|
-
},
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* Default MCP server configuration
|
|
76
|
-
*/
|
|
77
|
-
export const defaultMCPServerConfig = {
|
|
78
|
-
name: 'claude-flow',
|
|
79
|
-
version: '3.0.0',
|
|
80
|
-
transport: {
|
|
81
|
-
type: 'stdio',
|
|
82
|
-
},
|
|
83
|
-
capabilities: {
|
|
84
|
-
tools: true,
|
|
85
|
-
resources: true,
|
|
86
|
-
prompts: true,
|
|
87
|
-
logging: true,
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
/**
|
|
91
|
-
* Default orchestrator configuration
|
|
92
|
-
*/
|
|
93
|
-
export const defaultOrchestratorConfig = {
|
|
94
|
-
session: {
|
|
95
|
-
persistSessions: true,
|
|
96
|
-
dataDir: './data',
|
|
97
|
-
sessionRetentionMs: 3600000, // 1 hour
|
|
98
|
-
},
|
|
99
|
-
health: {
|
|
100
|
-
checkInterval: 30000, // 30 seconds
|
|
101
|
-
historyLimit: 100,
|
|
102
|
-
degradedThreshold: 1,
|
|
103
|
-
unhealthyThreshold: 2,
|
|
104
|
-
},
|
|
105
|
-
lifecycle: {
|
|
106
|
-
maxConcurrentAgents: 20,
|
|
107
|
-
spawnTimeout: 30000, // 30 seconds
|
|
108
|
-
terminateTimeout: 10000, // 10 seconds
|
|
109
|
-
maxSpawnRetries: 3,
|
|
110
|
-
},
|
|
111
|
-
};
|
|
112
|
-
/**
|
|
113
|
-
* Default full system configuration
|
|
114
|
-
*/
|
|
115
|
-
export const defaultSystemConfig = {
|
|
116
|
-
orchestrator: defaultOrchestratorConfig,
|
|
117
|
-
memory: defaultMemoryConfig,
|
|
118
|
-
mcp: defaultMCPServerConfig,
|
|
119
|
-
swarm: defaultSwarmConfigCore,
|
|
120
|
-
};
|
|
121
|
-
/**
|
|
122
|
-
* Agent type presets
|
|
123
|
-
*/
|
|
124
|
-
export const agentTypePresets = {
|
|
125
|
-
coder: {
|
|
126
|
-
type: 'coder',
|
|
127
|
-
capabilities: ['code', 'debug', 'refactor', 'test'],
|
|
128
|
-
maxConcurrentTasks: 3,
|
|
129
|
-
priority: 70,
|
|
130
|
-
},
|
|
131
|
-
reviewer: {
|
|
132
|
-
type: 'reviewer',
|
|
133
|
-
capabilities: ['review', 'analyze', 'suggest'],
|
|
134
|
-
maxConcurrentTasks: 5,
|
|
135
|
-
priority: 60,
|
|
136
|
-
},
|
|
137
|
-
tester: {
|
|
138
|
-
type: 'tester',
|
|
139
|
-
capabilities: ['test', 'validate', 'benchmark'],
|
|
140
|
-
maxConcurrentTasks: 4,
|
|
141
|
-
priority: 65,
|
|
142
|
-
},
|
|
143
|
-
researcher: {
|
|
144
|
-
type: 'researcher',
|
|
145
|
-
capabilities: ['research', 'analyze', 'summarize'],
|
|
146
|
-
maxConcurrentTasks: 3,
|
|
147
|
-
priority: 50,
|
|
148
|
-
},
|
|
149
|
-
planner: {
|
|
150
|
-
type: 'planner',
|
|
151
|
-
capabilities: ['plan', 'organize', 'decompose'],
|
|
152
|
-
maxConcurrentTasks: 2,
|
|
153
|
-
priority: 80,
|
|
154
|
-
},
|
|
155
|
-
architect: {
|
|
156
|
-
type: 'architect',
|
|
157
|
-
capabilities: ['design', 'architecture', 'patterns'],
|
|
158
|
-
maxConcurrentTasks: 2,
|
|
159
|
-
priority: 85,
|
|
160
|
-
},
|
|
161
|
-
coordinator: {
|
|
162
|
-
type: 'coordinator',
|
|
163
|
-
capabilities: ['coordinate', 'delegate', 'monitor'],
|
|
164
|
-
maxConcurrentTasks: 10,
|
|
165
|
-
priority: 90,
|
|
166
|
-
},
|
|
167
|
-
security: {
|
|
168
|
-
type: 'security',
|
|
169
|
-
capabilities: ['audit', 'scan', 'validate', 'secure'],
|
|
170
|
-
maxConcurrentTasks: 3,
|
|
171
|
-
priority: 95,
|
|
172
|
-
},
|
|
173
|
-
performance: {
|
|
174
|
-
type: 'performance',
|
|
175
|
-
capabilities: ['benchmark', 'optimize', 'profile'],
|
|
176
|
-
maxConcurrentTasks: 2,
|
|
177
|
-
priority: 70,
|
|
178
|
-
},
|
|
179
|
-
};
|
|
180
|
-
/**
|
|
181
|
-
* Get merged configuration with defaults
|
|
182
|
-
*/
|
|
183
|
-
export function mergeWithDefaults(config, defaults) {
|
|
184
|
-
return { ...defaults, ...config };
|
|
185
|
-
}
|
|
186
|
-
//# sourceMappingURL=defaults.js.map
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V3 Configuration - Public API
|
|
3
|
-
*/
|
|
4
|
-
// Schemas
|
|
5
|
-
export * from './schema.js';
|
|
6
|
-
// Validation
|
|
7
|
-
export * from './validator.js';
|
|
8
|
-
// Defaults
|
|
9
|
-
export * from './defaults.js';
|
|
10
|
-
// Loader
|
|
11
|
-
export * from './loader.js';
|
|
12
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V3 Configuration Loader
|
|
3
|
-
* Load configuration from various sources
|
|
4
|
-
*/
|
|
5
|
-
import type { SystemConfig } from './schema.js';
|
|
6
|
-
/**
|
|
7
|
-
* Configuration source type
|
|
8
|
-
*/
|
|
9
|
-
export type ConfigSource = 'file' | 'env' | 'default' | 'merged';
|
|
10
|
-
/**
|
|
11
|
-
* Loaded configuration with metadata
|
|
12
|
-
*/
|
|
13
|
-
export interface LoadedConfig {
|
|
14
|
-
config: SystemConfig;
|
|
15
|
-
source: ConfigSource;
|
|
16
|
-
path?: string;
|
|
17
|
-
warnings?: string[];
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Configuration loader class
|
|
21
|
-
*/
|
|
22
|
-
export declare class ConfigLoader {
|
|
23
|
-
private searchPaths;
|
|
24
|
-
constructor(additionalPaths?: string[]);
|
|
25
|
-
/**
|
|
26
|
-
* Load configuration from all sources
|
|
27
|
-
*/
|
|
28
|
-
load(): Promise<LoadedConfig>;
|
|
29
|
-
/**
|
|
30
|
-
* Load configuration from specific file
|
|
31
|
-
*/
|
|
32
|
-
loadFromFile(filePath: string): Promise<LoadedConfig>;
|
|
33
|
-
/**
|
|
34
|
-
* Deep merge objects
|
|
35
|
-
*/
|
|
36
|
-
private deepMerge;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Load configuration (convenience function)
|
|
40
|
-
*/
|
|
41
|
-
export declare function loadConfig(options?: {
|
|
42
|
-
paths?: string[];
|
|
43
|
-
file?: string;
|
|
44
|
-
}): Promise<LoadedConfig>;
|
|
45
|
-
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V3 Configuration Loader
|
|
3
|
-
* Load configuration from various sources
|
|
4
|
-
*/
|
|
5
|
-
import { readFile } from 'fs/promises';
|
|
6
|
-
import { join, resolve } from 'path';
|
|
7
|
-
import { existsSync } from 'fs';
|
|
8
|
-
import { validateSystemConfig } from './validator.js';
|
|
9
|
-
import { defaultSystemConfig, mergeWithDefaults } from './defaults.js';
|
|
10
|
-
/**
|
|
11
|
-
* Configuration file names to search for
|
|
12
|
-
*/
|
|
13
|
-
const CONFIG_FILE_NAMES = [
|
|
14
|
-
'claude-flow.config.json',
|
|
15
|
-
'claude-flow.config.js',
|
|
16
|
-
'claude-flow.json',
|
|
17
|
-
'.claude-flow.json',
|
|
18
|
-
];
|
|
19
|
-
/**
|
|
20
|
-
* Find configuration file in directory
|
|
21
|
-
*/
|
|
22
|
-
async function findConfigFile(directory) {
|
|
23
|
-
for (const name of CONFIG_FILE_NAMES) {
|
|
24
|
-
const path = join(directory, name);
|
|
25
|
-
if (existsSync(path)) {
|
|
26
|
-
return path;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Load configuration from JSON file
|
|
33
|
-
*/
|
|
34
|
-
async function loadJsonConfig(path) {
|
|
35
|
-
const content = await readFile(path, 'utf8');
|
|
36
|
-
return JSON.parse(content);
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Load configuration from environment variables
|
|
40
|
-
*/
|
|
41
|
-
function loadEnvConfig() {
|
|
42
|
-
const config = {};
|
|
43
|
-
// Orchestrator settings
|
|
44
|
-
if (process.env.CLAUDE_FLOW_MAX_AGENTS) {
|
|
45
|
-
config.orchestrator = {
|
|
46
|
-
...defaultSystemConfig.orchestrator,
|
|
47
|
-
lifecycle: {
|
|
48
|
-
...defaultSystemConfig.orchestrator.lifecycle,
|
|
49
|
-
maxConcurrentAgents: parseInt(process.env.CLAUDE_FLOW_MAX_AGENTS, 10),
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
// Data directory
|
|
54
|
-
if (process.env.CLAUDE_FLOW_DATA_DIR) {
|
|
55
|
-
config.orchestrator = {
|
|
56
|
-
...config.orchestrator,
|
|
57
|
-
...defaultSystemConfig.orchestrator,
|
|
58
|
-
session: {
|
|
59
|
-
...defaultSystemConfig.orchestrator.session,
|
|
60
|
-
dataDir: process.env.CLAUDE_FLOW_DATA_DIR,
|
|
61
|
-
},
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
// Memory type
|
|
65
|
-
if (process.env.CLAUDE_FLOW_MEMORY_TYPE) {
|
|
66
|
-
const memoryType = process.env.CLAUDE_FLOW_MEMORY_TYPE;
|
|
67
|
-
if (['sqlite', 'agentdb', 'hybrid', 'redis', 'memory'].includes(memoryType)) {
|
|
68
|
-
config.memory = {
|
|
69
|
-
...(defaultSystemConfig.memory ?? { type: 'hybrid' }),
|
|
70
|
-
type: memoryType,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// MCP transport
|
|
75
|
-
const defaultMcp = defaultSystemConfig.mcp ?? { name: 'claude-flow', version: '3.0.0', transport: { type: 'stdio' } };
|
|
76
|
-
if (process.env.CLAUDE_FLOW_MCP_TRANSPORT) {
|
|
77
|
-
const transport = process.env.CLAUDE_FLOW_MCP_TRANSPORT;
|
|
78
|
-
if (['stdio', 'http', 'websocket'].includes(transport)) {
|
|
79
|
-
config.mcp = {
|
|
80
|
-
...defaultMcp,
|
|
81
|
-
transport: {
|
|
82
|
-
...defaultMcp.transport,
|
|
83
|
-
type: transport,
|
|
84
|
-
},
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
if (process.env.CLAUDE_FLOW_MCP_PORT) {
|
|
89
|
-
config.mcp = {
|
|
90
|
-
...config.mcp,
|
|
91
|
-
...defaultMcp,
|
|
92
|
-
transport: {
|
|
93
|
-
...config.mcp?.transport,
|
|
94
|
-
...defaultMcp.transport,
|
|
95
|
-
port: parseInt(process.env.CLAUDE_FLOW_MCP_PORT, 10),
|
|
96
|
-
},
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
// Swarm topology
|
|
100
|
-
const defaultSwarm = defaultSystemConfig.swarm ?? { topology: 'hierarchical-mesh', maxAgents: 20 };
|
|
101
|
-
if (process.env.CLAUDE_FLOW_SWARM_TOPOLOGY) {
|
|
102
|
-
const topology = process.env.CLAUDE_FLOW_SWARM_TOPOLOGY;
|
|
103
|
-
if (['hierarchical', 'mesh', 'ring', 'star', 'adaptive', 'hierarchical-mesh'].includes(topology)) {
|
|
104
|
-
config.swarm = {
|
|
105
|
-
...defaultSwarm,
|
|
106
|
-
topology,
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return config;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Configuration loader class
|
|
114
|
-
*/
|
|
115
|
-
export class ConfigLoader {
|
|
116
|
-
searchPaths = [];
|
|
117
|
-
constructor(additionalPaths) {
|
|
118
|
-
// Default search paths
|
|
119
|
-
this.searchPaths = [
|
|
120
|
-
process.cwd(),
|
|
121
|
-
resolve(process.cwd(), '..'),
|
|
122
|
-
resolve(process.env.HOME ?? '', '.claude-flow'),
|
|
123
|
-
];
|
|
124
|
-
if (additionalPaths) {
|
|
125
|
-
this.searchPaths.push(...additionalPaths);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Load configuration from all sources
|
|
130
|
-
*/
|
|
131
|
-
async load() {
|
|
132
|
-
const warnings = [];
|
|
133
|
-
// Start with defaults
|
|
134
|
-
let config = { ...defaultSystemConfig };
|
|
135
|
-
let source = 'default';
|
|
136
|
-
let path;
|
|
137
|
-
// Try to load from file
|
|
138
|
-
for (const searchPath of this.searchPaths) {
|
|
139
|
-
const configPath = await findConfigFile(searchPath);
|
|
140
|
-
if (configPath) {
|
|
141
|
-
try {
|
|
142
|
-
const fileConfig = await loadJsonConfig(configPath);
|
|
143
|
-
const validation = validateSystemConfig(fileConfig);
|
|
144
|
-
if (validation.success) {
|
|
145
|
-
config = mergeWithDefaults(validation.data, defaultSystemConfig);
|
|
146
|
-
source = 'file';
|
|
147
|
-
path = configPath;
|
|
148
|
-
break;
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
// Config file exists but doesn't match the strict schema.
|
|
152
|
-
// Merge whatever valid object fields exist with defaults and continue.
|
|
153
|
-
// This handles partial configs, legacy configs, and simple key-value files.
|
|
154
|
-
if (fileConfig && typeof fileConfig === 'object' && !Array.isArray(fileConfig)) {
|
|
155
|
-
const partial = fileConfig;
|
|
156
|
-
const merged = { ...defaultSystemConfig };
|
|
157
|
-
for (const key of Object.keys(partial)) {
|
|
158
|
-
if (partial[key] && typeof partial[key] === 'object' && !Array.isArray(partial[key])) {
|
|
159
|
-
merged[key] = { ...(merged[key] || {}), ...partial[key] };
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
config = merged;
|
|
163
|
-
source = 'file';
|
|
164
|
-
path = configPath;
|
|
165
|
-
}
|
|
166
|
-
// Always break on first found config file — don't search further
|
|
167
|
-
break;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
catch (error) {
|
|
171
|
-
warnings.push(`Failed to load config from ${configPath}: ${error.message}`);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
// Merge with environment variables
|
|
176
|
-
const envConfig = loadEnvConfig();
|
|
177
|
-
if (Object.keys(envConfig).length > 0) {
|
|
178
|
-
config = this.deepMerge(config, envConfig);
|
|
179
|
-
source = source === 'default' ? 'env' : 'merged';
|
|
180
|
-
}
|
|
181
|
-
return {
|
|
182
|
-
config,
|
|
183
|
-
source,
|
|
184
|
-
path,
|
|
185
|
-
warnings: warnings.length > 0 ? warnings : undefined,
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Load configuration from specific file
|
|
190
|
-
*/
|
|
191
|
-
async loadFromFile(filePath) {
|
|
192
|
-
const absolutePath = resolve(filePath);
|
|
193
|
-
const fileConfig = await loadJsonConfig(absolutePath);
|
|
194
|
-
const validation = validateSystemConfig(fileConfig);
|
|
195
|
-
if (!validation.success) {
|
|
196
|
-
throw new Error(`Invalid configuration: ${validation.errors?.map(e => e.message).join(', ')}`);
|
|
197
|
-
}
|
|
198
|
-
const config = mergeWithDefaults(validation.data, defaultSystemConfig);
|
|
199
|
-
return {
|
|
200
|
-
config,
|
|
201
|
-
source: 'file',
|
|
202
|
-
path: absolutePath,
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Deep merge objects
|
|
207
|
-
*/
|
|
208
|
-
deepMerge(target, source) {
|
|
209
|
-
const result = { ...target };
|
|
210
|
-
for (const key of Object.keys(source)) {
|
|
211
|
-
const sourceValue = source[key];
|
|
212
|
-
const targetValue = target[key];
|
|
213
|
-
if (sourceValue &&
|
|
214
|
-
typeof sourceValue === 'object' &&
|
|
215
|
-
!Array.isArray(sourceValue) &&
|
|
216
|
-
targetValue &&
|
|
217
|
-
typeof targetValue === 'object' &&
|
|
218
|
-
!Array.isArray(targetValue)) {
|
|
219
|
-
result[key] = this.deepMerge(targetValue, sourceValue);
|
|
220
|
-
}
|
|
221
|
-
else if (sourceValue !== undefined) {
|
|
222
|
-
result[key] = sourceValue;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
return result;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Load configuration (convenience function)
|
|
230
|
-
*/
|
|
231
|
-
export async function loadConfig(options) {
|
|
232
|
-
const loader = new ConfigLoader(options?.paths);
|
|
233
|
-
if (options?.file) {
|
|
234
|
-
return loader.loadFromFile(options.file);
|
|
235
|
-
}
|
|
236
|
-
return loader.load();
|
|
237
|
-
}
|
|
238
|
-
//# sourceMappingURL=loader.js.map
|